DjangoCon Europe 2016: Call for Sponsors
djangoproject.com
djangoproject.com
But, my last experience (2011) with Django was not encouraging. It's not that it doesn't do what it says on the tin, I believe that it does. It's that it's just so darn complex to work with. Installation was very, very difficult. And, once built, it felt like there were a number of layers of 'magic' between me and getting something done.
I know there are tradeoffs in content management systems; I launched and sold two companies based on content management tools, the later one based on the ArsDigita Community System in 1998, and so I would say I have at least 10 years of CMS experience in a variety of different environments and languages.
I have a bias against magic, and maybe magic is what's needed for most CMSes. But I still have a little shudder when I think about dealing with install and configuration, backup and datamodel changes in a very small site.
Can anyone offer a counterpoint? I'd like to be able to change my mind if it should be changed.
Django as a framework is very different form traditional CMSes like wordpress, Drupal etc. It is mostly meant to write scalable web services with great speed and has batteries included for example a good ORM, migration assistant, good admin etc.
If CMS is your usecase, you should have tried Django CMS(it is built on top of Django and support great features. (http://www.django-cms.org/en/)
I think you need to understand that every framework or library in the world requires you to read the documentation. There is not shortcut.
However, Django CMS also comes up with a very nice installer(http://docs.django-cms.org/en/develop/introduction/install.h...). It automates almost everything. Whenever you change your model, you generate migrations and run it. python manage.py makemigrations python manage.py migrate
I think coming from other framework/language, just be a little patient and give it another try. If you still feel any issues, feel free to jump in the IRC (#django, #django-cms) and ask your questions. The community is nice and kind enough and you will probably never hit a roadblock.
Also one thing I'd like to point out, that is a frequent source of confusion, is that Django isn't a CMS. It's a general purpose web framework, akin to Rails or Express. It just happens to have come from CMS roots and is particularly adept at "content" type systems.
Disclaimer: I'm pretty biased about Django :)
> pip install django
> django-admin startproject myproject
> cd myproject
> python manage.py runserver
1.4 (2012) made it a lot easier to get started with Django.Also Django isn't a CMS, if you're expecting it to be like Wordpress, Drupal, etc; it is not going to fill your need (although you might want to try Django-CMS)
Firstly, the situation today really is very different than 2011, although I will say that I also used Django around then and also enjoyed it.
The documentation in particular is actually, in my opinion, some of the best documentation of a project out there.
That said, this really depends on your use case. I think Django is a great fit for some things, especially building up REST APIs or fairly complex dynamic applications, but there are some usecases for which it's not as suited.
It is definitely designed for a larger deployment. My memory is that it felt very 'heavy weight'.
During development, you can run a self-hosted Django instance with `python manage.py runserver`.
Once you've developed your application and are ready to deploy, I'd personally suggest this guide (although others may have different opinions): http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django.... It boils down to installing uwsgi, creating a wsgi config file (which specifies the path to your Django app, and it's name), and then telling nginx to proxy requests to your wsgi socket.
I think the difference was that django wanted python running through WSGI; the go servers expect to be running behind the scenes and just using nginx as a proxy.