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.
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.
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)
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.
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.