A Basic Django Introduction
Upcoming SlideShare
Loading in...5

A Basic Django Introduction






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

A Basic Django Introduction A Basic Django Introduction Presentation Transcript

  • Web Development With Django A Basic Introduction Ganga L
  • Python Frameworks  Django  CherryPy  Pylons  Flask  Bottle  Tipfy  Pyramid  Cubic Web  GAE framework
  • Outline What Is Django? Project Structure Data Handling The Admin Interface Django Forms Views Templates
  • What Is Django? High-level framework for rapid web development Complete stack of tools Data modelled with Python classes Production-ready data admin interface, generated dynamically Elegant system for mapping URLs to Python code Generic views’ to handle common requests Clean, powerful template language Components for user authentication, form handling, caching . . .
  • Creating Projects & Apps Creating a project: django-admin.py startproject mysite Creating an app within a project directory: cd mysite ./manage.py startapp poll
  • Project Structure A Python package on your PYTHONPATH Holds project-wide settings in settings.py Holds a URL configuration (URLconf) in urls.py Contains or references one or more apps
  • App A Python package on your PYTHONPATH (typically created as a subpackage of the project itself) May contain data models in models.py May contain views in views.py May have its own URL configuration in urls.py
  • Up & Running Set PYTHONPATH to include parent of your project directory Define new environment variable DJANGO_SETTINGS_MODULE, setting it to project settings (mysite.settings) 3 Try running the development server: /manage.py runserver
  • Creating The Database Create database polls in youe database Sync installed apps with database: ./manage.py syncdb
  • Create Project Create Project mysite mysite/ manage.py mysite/ __init__.py settings.py urls.py
  • Create Application python manage.py startapp polls polls/ __init__.py models.py tests.py views.py
  • Create Models from django.db import models class Poll(models.Model): question = models.CharField(max_length=200) pub_date = models.DateTimeField(date published) class Choice(models.Model): poll = models.ForeignKey(Poll) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0)
  • The Data Model  A description of database layout, as a Python class  Normally represents one database table  Has fields that map onto columns of the table  Many built-in field types  CharField, TextField  IntegerField, FloatField, DecimalField  DateField, DateTimeField, TimeField  EmailField, URLField  ForeignKey . . .
  • Installed App INSTALLED_APPS = ( django.contrib.admin, django.contrib.auth, django.contrib.contenttypes, django.contrib.sessions, django.contrib.messages, django.contrib.staticfiles, polls, ) python manage.py syncdb
  • Registering Models in Admin In admin.py in the Poll app: from django.contrib import admin from mysite.polls.models import Poll admin.site.register(Poll)
  • In urls.py: from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns(, url(r^admin/, include(admin.site.urls)), )
  • Generic Views Provide ready-made logic for many common tasks:  Issuing a redirect  Displaying a paginated list of objects  Displaying a ‘detail’ page for a single object  Yearly, monthly or daily listing of date-based objects  ‘Latest items’ page for date-based objects  Object creation, updating, deletion (with/without authorisation)
  • Generic Views Example views.py def index(request): return HttpResponse("Hello, world. Youre at the poll index.") Url.py from django.conf.urls.defaults import * from polls import views urlpatterns = patterns(, url(r^$, views.index, name=index) ) Main URL.py from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns(, url(r^polls/, include(polls.urls)), url(r^admin/, include(admin.site.urls)), )
  • Creating & Saving Objects  Invoke constructor and call save method:  call create method of Club model manager:poll = Poll(question=what is your DOB? , year=1986)poll.save()Poll.objects.create(question=what is your DOB? , year=1986)
  • View Function Takes an HTTPRequest object as a parameter Returns an HTTPResponse object to caller Is associated with a particular URL via the URLconf
  • HTTP Responsefrom datetime import datefrom django.http import HttpResponsedef today(request): html = <html><body><h2>%s</h2></body></html> % date.today() return HttpResponse(html)from django.shortcuts import render_to_responseFrom mysite.polls.models import Polldef poll_details(request): today = date.today() poll_data = Poll.objects.all() return render_to_response(clubs.html, locals(), context_instance = RequestContext(request))
  • Templates  Text files containing  Variables, replaced by values when the template is rendered[  {{ today }}  Filters that modify how values are displayed  {{ today|date:"D d M Y" }}  Tags that control the logic of the rendering process  {% if name == "nick" %}  <p>Hello, Nick!</p>  {% else %}  <p>Who are you?</p>  {% endif %}
  • Template Examplesettings.pyTEMPLATE_DIRS = ( os.path.join(os.path.dirname(__file__), templates), ) templates/club/club_list.html {% extends "base.html" %} {% block title %}Clubs{% endblock %} {% block content %} <h1>Clubs</h1> <ol> {% for club in clubs %} <li>{{ club }}</li> {% endfor %} </ol> {% endblock %}
  • Django Forms A collection of fields that knows how to validate itself and display itself as HTML. Display an HTML form with automatically generated form widgets. Check submitted data against a set of validation rules. Redisplay a form in the case of validation errors. Convert submitted form data to the relevant Python data types.
  • Django Model Forms from django.forms import ModelForm import mysite.polls.models import Poll class PollForm(ModelForm): class Meta: model = Pole
  • A Basic Django Forms
  • Standard Views.py
  • Standard Views.py
  • Standard Views.py
  • Easy Views.py
  • Easy Views.py
  • Summary We have shown you  The structure of a Django project  How models represent data in Django applications  How data can be stored and queried via model instances  How data can be managed through a dynamic admin interface  How functionality is represent by views, each associated with URLs that match a given pattern  How views render a response using a template
  • Thank You