SlideShare a Scribd company logo
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. You're 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 Response


from datetime import date
from django.http import HttpResponse

def today(request):
     html = '<html><body><h2>%s</h2></body></html>' % date.today()
     return HttpResponse(html)




from django.shortcuts import render_to_response
From mysite.polls.models import Poll

def 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 Example

settings.py

TEMPLATE_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

More Related Content

What's hot (20)

PPT
Introduction To Django
Jay Graves
 
PDF
Web Development with Python and Django
Michael Pirnat
 
PPTX
Flask – Python
Max Claus Nunes
 
PPTX
Flask
Mamta Kumari
 
PPT
Introduction to JavaScript
Andres Baravalle
 
PDF
Bootstrap
Jadson Santos
 
PPT
Java Servlets
BG Java EE Course
 
PPTX
WEB Scraping.pptx
Shubham Jaybhaye
 
PPTX
Hibernate ppt
Aneega
 
PDF
Python Django tutorial | Getting Started With Django | Web Development With D...
Edureka!
 
PPTX
Introduction to angular with a simple but complete project
Jadson Santos
 
PPTX
Express js
Manav Prasad
 
PPSX
Php and MySQL
Tiji Thomas
 
PPT
JavaScript - An Introduction
Manvendra Singh
 
PPTX
Basics of Object Oriented Programming in Python
Sujith Kumar
 
PPTX
Introduction to spring boot
Santosh Kumar Kar
 
PPTX
jQuery
Jay Poojara
 
PPT
Javascript
Manav Prasad
 
PDF
Nodejs presentation
Arvind Devaraj
 
PPTX
Presentation of bootstrap
1amitgupta
 
Introduction To Django
Jay Graves
 
Web Development with Python and Django
Michael Pirnat
 
Flask – Python
Max Claus Nunes
 
Introduction to JavaScript
Andres Baravalle
 
Bootstrap
Jadson Santos
 
Java Servlets
BG Java EE Course
 
WEB Scraping.pptx
Shubham Jaybhaye
 
Hibernate ppt
Aneega
 
Python Django tutorial | Getting Started With Django | Web Development With D...
Edureka!
 
Introduction to angular with a simple but complete project
Jadson Santos
 
Express js
Manav Prasad
 
Php and MySQL
Tiji Thomas
 
JavaScript - An Introduction
Manvendra Singh
 
Basics of Object Oriented Programming in Python
Sujith Kumar
 
Introduction to spring boot
Santosh Kumar Kar
 
jQuery
Jay Poojara
 
Javascript
Manav Prasad
 
Nodejs presentation
Arvind Devaraj
 
Presentation of bootstrap
1amitgupta
 

Viewers also liked (14)

PPT
Django introduction
Valeria Leonardi
 
PDF
Introduction to django
Ilian Iliev
 
PPTX
The Django Web Application Framework 2
fishwarter
 
PDF
Андрей Колешко «Что не так с Rails»
Olga Lavrentieva
 
PDF
Building a Dynamic Website Using Django
Nathan Eror
 
PPTX
Introduction to django
Sreenath Ramamoorthi
 
ODP
Kivy - Python UI Library for Any Platform
Saurav Singhi
 
PPT
Введение в Django
Илья Барышев
 
PDF
Building Pluggable Web Applications using Django
Lakshman Prasad
 
PDF
Введение в Python и Django
Taras Lyapun
 
PDF
Django in the Real World
Jacob Kaplan-Moss
 
PDF
쉽게 쓰여진 Django
Taehoon Kim
 
PDF
Scalable Django Architecture
Rami Sayar
 
PDF
The Django Web Application Framework
Simon Willison
 
Django introduction
Valeria Leonardi
 
Introduction to django
Ilian Iliev
 
The Django Web Application Framework 2
fishwarter
 
Андрей Колешко «Что не так с Rails»
Olga Lavrentieva
 
Building a Dynamic Website Using Django
Nathan Eror
 
Introduction to django
Sreenath Ramamoorthi
 
Kivy - Python UI Library for Any Platform
Saurav Singhi
 
Введение в Django
Илья Барышев
 
Building Pluggable Web Applications using Django
Lakshman Prasad
 
Введение в Python и Django
Taras Lyapun
 
Django in the Real World
Jacob Kaplan-Moss
 
쉽게 쓰여진 Django
Taehoon Kim
 
Scalable Django Architecture
Rami Sayar
 
The Django Web Application Framework
Simon Willison
 
Ad

Similar to A Basic Django Introduction (20)

ODP
Introduction to Django
colinkingswood
 
PDF
An Introduction to Django Web Framework
David Gibbons
 
PDF
Introduction to Django
Jagdeep Singh Malhi
 
PDF
a hands on guide to django
swee meng ng
 
PPTX
Django crush course
Mohammed El Rafie Tarabay
 
PDF
The Django Web Framework (EuroPython 2006)
Simon Willison
 
PDF
Python & Django TTT
kevinvw
 
PPTX
Tango with django
Rajan Kumar Upadhyay
 
PDF
Introduction to Django
Joaquim Rocha
 
ODP
Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Mir Nazim
 
PDF
CCCDjango2010.pdf
jayarao21
 
PDF
Intro to Web Development Using Python and Django
Chariza Pladin
 
PDF
GDG Addis - An Introduction to Django and App Engine
Yared Ayalew
 
PDF
You've done the Django Tutorial, what next?
Andy McKay
 
PDF
django_introduction20141030
Kevin Wu
 
PDF
Python網站框架絕技: Django 完全攻略班
Paul Chao
 
PDF
Rapid web application development using django - Part (1)
Nishant Soni
 
PDF
Introduction to Python and Django
solutionstreet
 
PDF
Django - basics
University of Technology
 
PPTX
Django Architecture Introduction
Haiqi Chen
 
Introduction to Django
colinkingswood
 
An Introduction to Django Web Framework
David Gibbons
 
Introduction to Django
Jagdeep Singh Malhi
 
a hands on guide to django
swee meng ng
 
Django crush course
Mohammed El Rafie Tarabay
 
The Django Web Framework (EuroPython 2006)
Simon Willison
 
Python & Django TTT
kevinvw
 
Tango with django
Rajan Kumar Upadhyay
 
Introduction to Django
Joaquim Rocha
 
Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Mir Nazim
 
CCCDjango2010.pdf
jayarao21
 
Intro to Web Development Using Python and Django
Chariza Pladin
 
GDG Addis - An Introduction to Django and App Engine
Yared Ayalew
 
You've done the Django Tutorial, what next?
Andy McKay
 
django_introduction20141030
Kevin Wu
 
Python網站框架絕技: Django 完全攻略班
Paul Chao
 
Rapid web application development using django - Part (1)
Nishant Soni
 
Introduction to Python and Django
solutionstreet
 
Django - basics
University of Technology
 
Django Architecture Introduction
Haiqi Chen
 
Ad

A Basic Django Introduction

  • 1. Web Development With Django A Basic Introduction Ganga L
  • 2. Python Frameworks  Django  CherryPy  Pylons  Flask  Bottle  Tipfy  Pyramid  Cubic Web  GAE framework
  • 3. Outline  What Is Django?  Project Structure  Data Handling  The Admin Interface  Django Forms  Views  Templates
  • 4. 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 . . .
  • 5. Creating Projects & Apps  Creating a project: django-admin.py startproject mysite  Creating an app within a project directory: cd mysite ./manage.py startapp poll
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. Creating The Database  Create database polls in youe database  Sync installed apps with database: ./manage.py syncdb
  • 10. Create Project  Create Project mysite mysite/ manage.py mysite/ __init__.py settings.py urls.py
  • 11. Create Application  python manage.py startapp polls polls/ __init__.py models.py tests.py views.py
  • 12. 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)
  • 13. 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 . . .
  • 14. 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
  • 15. 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)
  • 16. 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)), )
  • 17. 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)
  • 18. Generic Views Example  views.py def index(request): return HttpResponse("Hello, world. You're 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)), )
  • 19. 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)
  • 20. View Function  Takes an HTTPRequest object as a parameter  Returns an HTTPResponse object to caller  Is associated with a particular URL via the URLconf
  • 21. HTTP Response from datetime import date from django.http import HttpResponse def today(request): html = '<html><body><h2>%s</h2></body></html>' % date.today() return HttpResponse(html) from django.shortcuts import render_to_response From mysite.polls.models import Poll def poll_details(request): today = date.today() poll_data = Poll.objects.all() return render_to_response('clubs.html', locals(), context_instance = RequestContext(request))
  • 22. 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 %}
  • 23. Template Example settings.py TEMPLATE_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 %}
  • 24. 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.
  • 25. Django Model Forms from django.forms import ModelForm import mysite.polls.models import Poll class PollForm(ModelForm): class Meta: model = Pole
  • 26. A Basic Django Forms
  • 32. 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