Differences between revisions 1 and 12 (spanning 11 versions)
Revision 1 as of 2005-06-30 08:54:43
Size: 1842
Editor: popl-cache-3
Comment: created page
Revision 12 as of 2006-01-13 14:46:22
Size: 3658
Editor: 212
Comment: Made a few minor corrections (version number, available database backends)
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
   URL:: http://django.sourceforge.net/
   version:: Currently unreleased, but the eta is June 2005
   licence:: Django is open source software available under a BSD-style license.
   platforms:: Unix and probably Windows too
   Python versions::
   URL:: http://www.djangoproject.com/
   version:: 0.91
   licence:: BSD
   platforms:: Unix, Windows, Mac
   Python versions:: >= 2.3
Line 13: Line 13:
ModPython is supported and WSGI is being considered 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.
Line 17: Line 17:
Django currently powers lawrence.com, ljworld.com and chicagocrime.org, along with a bunch of smaller sites such as visitlawrence.com and kkcscountry.com. Django currently powers lawrence.com, ljworld.com and chicagocrime.org, 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.
Line 19: Line 19:
=== Development Interfaces === === 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.
Line 23: Line 25:
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.
Line 25: Line 29:
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.
Line 28: Line 33:
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.
Line 31: Line 37:
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.
Line 34: Line 47:
Django is a high-level Python Web framework that encourages rapid development and clean, MVC design. Includes a template system, object-relational mapper and a framework for dynamically creating admin interfaces. Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Line 36: Line 49:
Django has been actively developed over the past year and a half. 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. 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.
Line 38: Line 51:
=== Comments === Includes a template system, object-relational mapper and a framework for dynamically creating admin interfaces.
Line 40: Line 53:
This framework is a potential competitor for Rails. It can claim one high profile site so far, chicagocrime.org though the same was true of Rails when the hype started. If Adrian Holovaty and Simon Willison blog about it and evangelize it in the same way that DHH did for Rails and the meme manages to propagate across the blogosphere, Django may achieve a similar profile. A big win for Rails was the accompanying documentation, the very active wiki and the screencasts. This made it much more approachable for interested web developers to get started. 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]
Line 43: Line 59:

See http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts

A framework for WebProgramming.

Masthead

URL

http://www.djangoproject.com/

version
0.91
licence
BSD
platforms
Unix, Windows, Mac
Python versions

>= 2.3

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 and chicagocrime.org, 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]

Hosting

See http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts

Django (last edited 2016-02-21 15:13:07 by EricaJor)

Unable to edit the page? See the FrontPage for instructions.