Welcome to the Django!
What's Django? "Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design."   from http://www.djangoproject.com/   "...and not a CMS System."
Origins... Django Reinhardt
Origins... Lawrence-Journal World
Origins... Pycon 2005 - Adrian Holovaty e Simon Willison BSD License* Django Software Foundation - 2008 * http://en.wikipedia.org/wiki/BSD_licenses
www.djangoproject.com
Skills    Convention Over Configuration  Object-Relational Mapping (ORM) Very useful admin CRUD Form handling Elegant URL Design Template system Cache system i18n      
Principles  (...or philosophies)       DRY ( Don't Repeat Yourself ) Loose coupling  Write  less  code as possible Quick  development Explicit is better than implicit        
...and the best, is
MVC? No... MTV!
MVC vs. MTV       M odel -->  M odel V iew -->  T emplate C ontroller -->  V iew
Overview
Go to the Project!
  Download  djangoproject.com/download Install Unzip Django-x.x.tar.gz python setup.py install Or...  apt-get install python-django  (Debian like OS) Setting up...
Create a Project...       django-admin.py startproject my_project
Setup files   __init__.py - indicates a python package   manager.py - admin tasks     settings.py - project settings     urls.py - project urls map
Let's to do something... Open  settings.py : DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = 'myblog.db' add 'django.contrib.admin' Open  urls.py : Uncomment the line: " from django.contrib... " Uncomment the line: " admin.autodiscover()... " Uncomment the line: " (r'^admin... "
Development server       python manager.py syncdb     python manager.py runserver [8000]
Others Servers... Development Server   Apache + Mod_Python   Apache + FastCGI
Create the app        python manage.py startapp my_blog
Setup files     init.py  - indicates a python package   models.py  - app domain model   views.py  - project controller
App x Project     App  - web app that do something. E.g. XXX Project  - lot of apps and themselves settings. A project can be a lot of apps, and a app can stay in severals projects
Create the model       Open  models.py  and edit:      from django.db import models class Artigo(models.Model): titulo = models.CharField(max_length=100) conteudo = models.TextField() publicacao = models.DateTimeField()
Setting the model classes to admin Open  admin.py  and edit:        from django.contrib import admin from models import Artigo   admin.site.register(Artigo)
Add the app to the admin      Open  settings.py  and add: "my_project.blog" Re-sync the database Re-run the development server
Setting the urls   Open the  urls.py  and edit:     from django.conf.urls.defaults import * # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() from my_blog.models import Artigo urlpatterns = patterns('', (r'^$', 'django.views.generic.date_based.archive_index', {'queryset': Artigo.objects.all(), 'date_field': 'publicacao'}), (r'^admin/(.*)', admin.site.root), )
Setting the templates   Create  templates/blog/artigo_archive.html  and edit:      <html><body> <h1>Meu blog</h1> {% for artigo in latest %} <h2>{{ artigo.titulo }}</h2> {{ artigo.conteudo }} {% endfor %} </body></html>
Look your app!        http://localhost:8000/
Recap...       Django is easy Django is fun Django scales Django is maintainable Django saves small kittens It rocks -  USE IT! 
Sites powered by Python/Django
 
Contact/follow us... [email_address] [email_address] Twitter: @leofernandesmo @felipe_wally