Slide 1

Slide 1 text

Developing with Django Daniel Ryan http://dryan.com

Slide 2

Slide 2 text

Some Background Lawrence Journal-World Ellington Pycon 2005 • • •

Slide 3

Slide 3 text

Sites Powered by Django

Slide 4

Slide 4 text

Acronyms Abound MTV - Model • Template • View DRY - Don’t Repeat Yourself ORM - Object-relational Mapping • • •

Slide 5

Slide 5 text

MTV vs. MVC Model = Model Template = View View = Controller • • •

Slide 6

Slide 6 text

Installing Django Check out http://dryan.com/articles/snow-leopard-64bit- mamp/#python Python Trunk versus Stable Release Third Party Libraries • • • •

Slide 7

Slide 7 text

A Django Workflow Create a project Configure settings.py Configure urls.py Create the database tables • • • •

Slide 8

Slide 8 text

A Django Workflow Create an app Define your models Create the database tables Define your urls Define your views • • • • •

Slide 9

Slide 9 text

Reduce, Reuse, Recycle direct_to_template redirect_to archive_index archive_year archive_month archive_week archive_day archive_today object_detail (date based) object_list object_detail (list based) create_object update_object delete_object Django Generic Views

Slide 10

Slide 10 text

Django Templates Just like PHP, except the exact opposite True separation of logic and presentation Global templates vs. app templates Blocks Tags • • • • •

Slide 11

Slide 11 text

Built-in Tags autoescape block comment cycle debug extends filter firstof for for ... empty if ifchanged ifequal ifnotequal include load now regroup spaceless ssi templatetag url widthratio with

Slide 12

Slide 12 text

Built-in Filters add addslashes capfirst center cut date default default_if_none dictsort dictsortreversed escapejs filesizeformat first fix_ampersands floatformat force_escape get_digit iriencode join last length_is linebreaks linebreaksbr linenumbers ljust lower make_list phone2numeric pluralize pprint removetags rjust safe safeseq slice slugify stringformat striptags time timesince title truncatewords truncatewords_html unordered_list upper urlencode urlize urlizetrunc wordcount wordwrap

Slide 13

Slide 13 text

Other Freebies Admin site Authentication Cache system Conditional content processing Comments Content types Cross Site Request Forgery protection Databrowse E-mail (sending) Flatpages Humanize Internationalization Jython support “Local flavor” Pagination Redirects Serialization Sessions Signals Sitemaps Sites Syndication feeds (RSS/Atom) Unicode in Django Web design helpers django.contrib

Slide 14

Slide 14 text

Resources http://docs.djangoproject.com irc://irc.freenode.net/django http://thisweekindjango.com/ http://www.djangosnippets.org/ http://code.djangoproject.com/wiki/Tutorials • • • • •