#pragma section-numbers off A framework for WebProgramming. === Masthead === URL:: http://www.djangoproject.com/ version:: 1.6.2 licence:: BSD platforms:: Unix, Windows, Mac Python versions:: >= 2.6 === Deployment Platforms === mod_python is preferred, but it has full WSGI support, so it can run with FCGI, etc. It also comes with a standalone Web server for development purposes. === Suitability === Django currently powers lawrence.com, ljworld.com, chicagocrime.org and Tabblo.com, along with a bunch of smaller sites such as visitlawrence.com and kkcscountry.com. It was originally developed and mainly used for content management, but its rich features -- templating, and automatic generation of database, database access layer, and admin interface generation from a model description given in straight python code -- are useful in other kinds of web applications. === URL dispatching === URLs are mapped to request handler functions using simple regular expressions. A regex may capture parts of the URL, which are then passed to the function as arguments. === Environment Access === Django creates an ``HttpRequest`` object that contains metadata about the request. This is automatically passed to the function that the URL is mapped to, and gets to create the response. === Session, Identification and Authentication === Sessions are propagated using cookies, the session data stored in a dictionary within the request object. Identification / Authentication: For each application, a pretty sophisticated admin interface is generated that knows about superusers, groups, users and privileges. Support for normal users registering themselves exists but isn't yet documented. === Persistence Support === Django's object-relational mapper provides the core of the framework, currently supports PostgreSQL, MySQL, SQLite3, and MSSQL. Django generates production-ready CRUD interfaces from the ORM. The automatic creation of database tables and database abstraction layer from Pythonic model definition is really quite elegant and probably Django's most distinctive feature. A very nice feature is that you can still embed SQL in an unobtrusive way within your model's methods if you have to, e.g. for complex queries with joins over multiple tables. Thus, the mapper can handle the 90% of the cases that are simple, yet will step aside elegantly where it should. === Presentation Support === Django has a Smarty-like template language. It looks like this: {% block title %}{{ section.title }}{% endblock %} === Documentation === Not 100% complete yet, but what's there is phenomenally good. It's no coincidence that one of Django's lead developers is a professional journalist. === InTheirOwnWords === Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Developed and used over the past two years by a newspaper Web operation, Django is well-suited for developing content-management systems. It was designed from scratch to handle the intensive deadlines of a newsroom and the stringent requirements of experienced Web developers. It focuses on automating as much as possible and adhering to the DRY principle. Includes a template system, object-relational mapper and a framework for dynamically creating admin interfaces. Ruby on Rails is similar to it, but Django is written in Python and has a few more advanced conveniences for super-quick Web development. Read the [[http://www.djangoproject.com/overview/|Django overview]] Find all articles about Django [[http://djangosearch.com/|Django search engine]] === Hosting === See http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts === Django Jobs and Developers === [[http://djangojobsboard.com/|The Django Jobs Board]] : A leading Django jobs portal, The Django Jobs Board was built by members of the Django community ''for'' the Django community. Provides a one-stop-shop for Django jobs from companies all over the world. Developers can also sign up to feature their profile to prospective employers, and to receive a digest of top Django job opportunities. [[http://www.djangojobs.org/|Django Python Jobs and Developers]] DjangoJobs.org is for listing permanent or freelance jobs for Django / Python developers,it is also a portal for the Django Python community. === Django Packages === List and comparison of Django packages. http://djangopackages.com/