5 ms·
DjangoCon Europe 2016: Call for Sponsors
- vessenes 11y agoI want to say this carefully and respectfully, not least because I believe in the guidelines here on HN. 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.
- yarrel 11y agoI'm not sure which platform Django would be difficult to install on. I used it on App Engine at around the same time as your experience and found it simple, flexible and expressive. I wouldn't use it for a very small site as a CMS - WordPress or Jekyll sound more appropriate there.
- vessenes 11y agoI did a bare metal install, and I sadly don't recall what was painful about it specifically; I recall fighting with Apache and Nginx and WSGI in some sequence of combinations. It is definitely designed for a larger deployment. My memory is that it felt very 'heavy weight'.
- JosephRedfern 11y agoIn terms of fighting with Apache/Nginx/WSGI, I think you'd have similar issues with most other frameworks. 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_and_nginx.html 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.
- vessenes 11y agoIt might be you're correct in general. The last few years, my team has worked with go fairly extensively for this sort of work, and it is a single line of go and a very short nginx block to get running. 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.
- deleted 11y ago[deleted]
- mtrn 11y agoThere is certainly some involvement of magic - read: metaclasses[1]. However, I just want to add another anecdotal data point. A few month back we had a four hour Django session with interested teenagers. Most of them had no problem picking up Django based on a prepared tutorial. Even though other frameworks might be more lean and slim, Django has still a lot to go for it in terms of comprehensiveness and ease of start. [1] http://stackoverflow.com/q/100003/89391 http://stackoverflow.com/q/100003/89391
- vessenes 11y agoThat's a very good anecdote, and definitely a better datapoint than my own experience. Anything that's giving young coders an entry point is a good one. We can hope they don't run into metaclass difficulties in their early days. :)
- frankwiles 11y agoSorry to hear you've had trouble in the past! Things have definitely gotten easier/clearer in terms of docs, defaults, and setup guides from 5 years ago. Especially considering Django recently turned 10 years old, your experience is fairly out of date. I'd encourage you to give modern Django (v1.8+) a try. 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 :)
- vessenes 11y agoThanks! I did use CMS loosely or just incorrectly, as others have pointed out. My recollection is that most of the tutorials at the time were baked around typical CMS scenarios. But, I hear you. It's always good to have something you love! :)
- aaronbasssett 11y agoOn most platforms getting Django to run is as simple as: > 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)
- mundanevoice 11y agoHello! I have been writing Django for more than 3 years now and I think I qualify to give a counterpoint. First, I would agree that Django's documentation could be more beginner friendly. But you know providing excellent cutting edge tool and providing excellent documentation is a very difficult task and it does require some more love. 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/ 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.html 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.
- vessenes 11y agoClearly the community is a huge asset! This is some of the politest advocacy I've seen in an Open Source project. Thank you!
- edanm 11y agoHope I'm not just adding noise at this point, but I want to also chime in in Django's favor here. 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.