Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Django 101

2,592 views

Published on

Introduction to Django, given at an Auckland NZPUG meeting in June 2008.

Published in: Technology
  • Be the first to comment

Django 101

  1. 1. Django 101 Robert Coup http://rob.coup.net.nz/
  2. 2. What is Django? “ The Web framework for perfectionists with deadlines Django makes it easier to build better Web apps more quickly and with less code www.djangoproject.com
  3. 3. Who am I? • Robert Coup • CTO of Koordinates - making geospatial data more accessible - http://koordinates.com • OSS contributor • 2 year Djangonaut • robert@coup.net.nz
  4. 4. What’s it for? • Building dynamic Web sites • A high level Web framework • Abstracts common problems • Shortcuts for fast development
  5. 5. Key Features • nice url handling • object : db mapping • forms • templating • admin interface • caching, syndication, middleware, email, sql, modules, authentication, sessions, comments, sitemaps, gis, …
  6. 6. So? And? • work at a nice abstraction level • just Python, no magic • gets out of your way
  7. 7. Architecture • “MVT” • Models describe your data • Views control what a user sees and does • Templates are what they see
  8. 8. Sample App - Yachties • Yacht racing crews • Schedule of races • Notify and Invite crew to races • Know who’s coming
  9. 9. Install Django • Database: Sqlite, Postgres, MySQL, Oracle • Web: Apache, FastCGI, wsgi, dev-server • Use Trunk, checkout from SVN • www.djangoproject.com/download • python setup.py install
  10. 10. Projects and Apps • django-admin startproject yachties • cd yachties • django-admin startapp racing
  11. 11. Models • models.py • describes the fields • turned into database tables • the logic and rules of the application
  12. 12. Settings • settings.py • Just a Python file
  13. 13. Databases • Django will create your tables for you • python manage.py syncdb • Additional SQL commands: • python manage.py sql* • Ability to preload data
  14. 14. Shell • python manage.py shell • from yachties.racing.models import Race • Manipulate your models live
  15. 15. Server • Server for development & debugging • python manage.py runserver • http://localhost:8000/
  16. 16. Automatic Admin Site • Built dynamically from your models • Authentication & validation • Flexible and customisable
  17. 17. URL Handling • All in urls.py • Separates views from how they’re called • Just regular expressions
  18. 18. Views • The “controller” • Just Python functions • that take a request • and return a response
  19. 19. Templates • What the user sees • No code
  20. 20. Templates • Pulls data from a dictionary (“context”) • Simple logic constructs (“tags”) • Simple data manipulation (“filters”) • Inheritance
  21. 21. More • Form generation & handling • Contrib apps: • builtin: admin, forms, gis, feeds, • 3 party: see Google Code rd • Any Python code will work with Django
  22. 22. Support • Quality documentation • Django Book www.djangobook.com • www.djangosnippets.org • Mailing lists, IRC
  23. 23. Google App Engine • Google’s “cloud computing” platform • Python based • Runs Django • Modified model layer • http://code.google.com/appengine/
  24. 24. Sites • Lots of news/journalism sites • Washington Post • Pownce • Koordinates • www.djangosites.org
  25. 25. Questions?

×