I still like the Zope framework and Plone for a CMS in the Python language.  Zope itself is written in python from the ground up.  

Within Zope the programmer can connect to multiple databases of different publishers like postgresql, mysql, or just an odbc adapter for MS SQL or the like.  You create a database connection object, then you can add ZSQL methods which define what connector to use, arguments to pass to the query if any, and the query in a WEB form which also has a test button.  The results are called into a page where you can format the results like you might with any WEB page of static data.  You can use "External Python Scripts" for just about unlimited purposes like a Google room booking system with Google Calendar, update users passwords on remote services including ldap, other zope servers,  and .htpasswd files, do database dumps from a WEB page,  tutorial and quiz system,  create an excel phone list from a Postgresql database,  create QR Codes, and several Google Apps services .  External python scripts are scripts that are in the regular file system otherwise, the entire site is in a Zope Object Database [Zodb]  except for external scripts and products, sorta like modules in Drupal.  So to move a WEB site to another machine, install zope and replace the install Zodb with yours and even all authentication is there and you still connect to the same external databases, just copy the Products and Extensions (scripts) directories.  You can use local scripting and avoid having to use EZ Proxy or other proxies in our case, but not now since we moved to Drupal, every database link checks WAM first now.  Previously, since we owned the entire last two octets, I could check users IPs to see if they were on or off campus PCs and direct them to WAM if they were off campus before preceding to the a database.  And there are other examples.  Most of the scripting for this is relatively easy for a Python programmer and the code is forced to be readable because indention is part of the syntax.  And hopefully you comment your code real good.  

In Plone, an admin can setup the look and feel, and set user permissions  as far as a CMS.  I've not worked with Plone in a while but my last work was with a version that will let the not so tech savy user log in to any page and directly edit the page in the browser if that login is authorized, not an editor like CKEditor or Tiny MCE.  lots of add on products to enhance Plone.

Plone has the best security track record of any major CMS ( ).


Support Request                                            
Thomas McMillan Grant Bennett           Appalachian State University
Operations & Systems Analyst            P O Box 32026
University Library                                Boone, North Carolina 28608
(828) 262 6587
Library Systems                    

Confidentiality Notice:
This communication constitutes an electronic communication within the meaning of the Electronic Communications Privacy Act, 18 U.S.C. Section 2510, and its disclosure is strictly limited to the recipient intended by the sender of this message.  If you are not the intended recipient, any disclosure, copying, distribution or use of any of the information contained in or attached to this transmission is STRICTLY PROHIBITED.  Please contact this office immediately by return e-mail or at 828-262-6587, and destroy the original transmission and its attachment(s), if any, if you are not the intended recipient.

On Feb 13, 2014, at 7:13 PM, Coral Sheldon-Hess wrote:

> 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, right?)
> * 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, too!
> Thank you!
> -- 
> Coral Sheldon-Hess
> @web_kunoichi