It's a CMS, a webapp and a database browser: how do I do this?
March 8, 2013 8:56 AM   Subscribe

I'm rebuilding a old website that doesn't quite neatly categorize in the it's a blog / it's a CMS / it's a table browser / it's a webapp thingie. After a few years out from web development, it seems fit to examine my whole strategy and ask how best to do this.

Years ago, I made a website for a laboratory I was working with. As is usual with these things, severe mission creep set in and it ended up:

* giving CRUD-like access to a database of samples, with record browsing and searching
* providing tools for visualizing, comparing and working with this data in various ways
* It also functioned as a CMS for various groups that used the database or were involved in lab activities, being somewhere they put reference documents, notices and so on.

There was the added complication that some of the website was open to the public, and some parts only for members of particular groups. Being a Python fan, I did the site up in Plone. NEVER DO THIS.

Anyway, to my surprise, the thing has worked fine for 5 years, with next to no maintenance or attention. Now, I'm between jobs and my old colleagues asked me if I can update the site. Which brings me to the main question: what framework should I use?

* I'm a Python guy but I'm done a bit of Rails work as well. Python will be the language of choice unless there's some overwhelmingly superior choice in another language
* Plone is out of the question. Never again.
* By default I thought of Django (which I have a little experience in), but I'm unsure if the mix of record browsing and content would sit well. Also Django's idea of multiple "apps" in a website never seemed to work well to me, with them acting like wholly independent units rather than parts of a single site.
* The task is a bit too involved for the various microframeworks: Flash, Bottle etc.
* The access control / security is pretty important. People shouldn't see what they're not allowed to see.

So what do I use? Are there any new and useful developments in the web framework sphere? Is Django up to the job?
posted by outlier to Computers & Internet (5 answers total) 3 users marked this as a favorite
 
Best answer: Django is definitely up to the job (as is almost any other well accepted framework you might try). Ruby and Rails are also awesome, but you'd pay a high knowledge cost in switching--stick to Python, because Python is as awesome as Ruby.

Don't worry too much about subdividing things into separate Django apps beyond some obvious folder organizing. You don't really need the hardcore app repackage-ability side of it, which means you can have it all in one core app if you want.

Regardless, don't do anything without looking up and understanding how virtualenv works in these situatiosn. Memail me for more details if you want, but the hotness on virtualenvs is so hot that they rolled it into python 3.3.

Django 1.5 just introduced pluggable user classes, and it's always had a strong permissions model, so you're fine there.

Really, just use Django. It'll fit right in with what you know, it's more than sufficient, and as a project it's steaming right along and a very safe technology choice.
posted by fatbird at 9:04 AM on March 8, 2013


Also in Django's favour: iPython bundles into manage.py so you can use it as the Django shell, which is just amazing. The state of tools in the Python world these days is just incredible.
posted by fatbird at 9:06 AM on March 8, 2013


I've seen plenty of custom Django CRUD apps built with Django-CMS mixed in. Mezzanine may work as well or better than Django-CMS. Also look at HTSQL for the browsing and visualization. It won't do create/update/delete, but it gives your users a good bit of freedom for working with data you expose.
posted by Monsieur Caution at 9:16 AM on March 8, 2013


Since you've ruled out Flask/Bottle I would recommend going with Django. it's proven, has a great community behind it, and the tool ecosystem is very rich. I'm not seeing any requirements out of the ordinary but you might want to look at some Django CMSs instead of creating one from scratch.
posted by Foci for Analysis at 9:45 AM on March 8, 2013


Response by poster: Welp, I wasn't expecting such a unanimous verdict. Thanks all.
posted by outlier at 3:07 PM on March 8, 2013


« Older Government of Mexico's Disaster Risk Management...   |   Frankenmouse's Monster, A modern Promethemouse Newer »
This thread is closed to new comments.