There are two conflicting issues here. If you want ease of development,
you want a framework. If you want ease of content creation, you want a
CMS. As a developer, it's always my preference to go for ease of
development and use a framework. Designing plugins and modules just sucks.
A simple plugin like displaying dates on a page is stupidly complicated
when you have to integrate it with the entire CMS rendering engine. But I
have to acknowledge that it is better for me as the developer to do a
little extra legwork than requiring all the non-techie content creators to
do the extra legwork. That said, it isn't _too_ hard to implement a basic
wysiwyg editor like CKeditor in most frameworks that would eliminate much
of the difficulty for content creators.

The bigger issue for me is that, when you use a framework, you more or
less guarantee that anyone inheriting your code is going to be facing a
steep learning curve, possibly insurmountable depending on their level of
programming knowledge. With a CMS, there is built-in documentation and a
support community for 95% of functionality, and then you just have to
document the 5% or so of code that you custom wrote.

Having said all that, I have to point out the amazing Yii PHP framework.
It is so extremely easy to build a data-driven app. If you ever want a PHP
framework, use that. For Python, I'd go with Django just because it has a
better support community and is slightly easier than Flask for database
functionality like ORM.

Josh Welker

-----Original Message-----
From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
Coral Sheldon-Hess
Sent: Thursday, February 13, 2014 6:14 PM
To: [log in to unmask]
Subject: [CODE4LIB] Python CMSs

Hi, everyone!

I've gotten clearance to totally rewrite my library's website in the
framework/CMS of my choice (pretty much :)). As I have said on numerous
occasions, "If I can get paid to write Python, I want to do that!" So,
after some discussion with my department head/sysadmin, we're leaning
toward Django.

Here's a broad question, re: Python and Django: If you've made the switch,
what has your experience been? Has Django (or any other Python framework)
given you something cool that was lacking in your previous
language/framework/CMS? Has it helped you build something awesome? Have
you found it enabling or limiting in any way? If you were going to sell
people on (or against) using it, what would your arguments be? I'm a
relative newbie to Python, and a total newbie to Django, so even if there
was a tutorial you found useful, or some caveat you learned along the way,
I'm interested. :)

And then a more specific question: Given the following requirements, do
you have a Django-based CMS you'd recommend? (Of course, I'll also do my
own research, but I'd love to see what other libraries' experiences have
been and what's popular, right now.)
 * There's a chance we'll want to offer other editors access to it, at
some point, so it would be nice if I can provide a WYSIWYG interface,
which I also am going to want the option to *turn off*, for my own sanity.
* We're a Springshare-heavy library with Summon and big secret API-based
plans, so easy JavaScript (preferably jQuery) integration is a must.
* It should play nicely with MySQL.
* Because I probably won't be here forever, it's of the utmost importance
that whatever we end up with is easy to maintain.
* I'm used to MODx's page-ID model, where I can move pages around, and as
long as I don't delete/recreate a page (thereby changing its ID), I don't
have to change any links anywhere else in the CMS. I'd really like
something that will work equally well, since the odds that I'll nail the
information architecture on the first try are probably slim. :) (Maybe
this one should go without saying, since I know WordPress and many other
CMSs do this, but if you have to err, err on the side of being explicit,
* A nice forms-builder plugin (module?) would be a great thing to have, as
well. We use FormIt in MODx, and now I'm spoiled.

And, I mean, if there's a CMS on top of another Python framework you think
I should be considering, feel free to throw that out as a possibility,

Thank you!

Coral Sheldon-Hess