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

KEY
Introduction to Django
PPTX
Web development with django - Basics Presentation
ODP
Django for Beginners
PPTX
Django - Python MVC Framework
PDF
Web Development with Python and Django
PPTX
Introduction to Django
PDF
Django Introduction & Tutorial
PPT
Introduction To Django
Introduction to Django
Web development with django - Basics Presentation
Django for Beginners
Django - Python MVC Framework
Web Development with Python and Django
Introduction to Django
Django Introduction & Tutorial
Introduction To Django

What's hot (20)

PDF
Python/Django Training
PPTX
PPTX
Flask – Python
PDF
Introduction to django framework
PDF
Python libraries
PDF
Methods in Java
PPTX
Python/Flask Presentation
PDF
JavaScript - Chapter 13 - Browser Object Model(BOM)
PDF
Introduction to django
PPTX
Dom(document object model)
PPTX
Functions in python slide share
PPTX
Java awt (abstract window toolkit)
PPT
programming with python ppt
PDF
Python Django tutorial | Getting Started With Django | Web Development With D...
PDF
Date and Time Module in Python | Edureka
PPTX
Python Functions
PPTX
File handling in Python
ODP
Python Modules
PDF
Web scraping in python
Python/Django Training
Flask – Python
Introduction to django framework
Python libraries
Methods in Java
Python/Flask Presentation
JavaScript - Chapter 13 - Browser Object Model(BOM)
Introduction to django
Dom(document object model)
Functions in python slide share
Java awt (abstract window toolkit)
programming with python ppt
Python Django tutorial | Getting Started With Django | Web Development With D...
Date and Time Module in Python | Edureka
Python Functions
File handling in Python
Python Modules
Web scraping in python
Ad

Viewers also liked (13)

PPT
Django introduction
PPTX
The Django Web Application Framework 2
PDF
Андрей Колешко «Что не так с Rails»
PDF
Building a Dynamic Website Using Django
PPTX
Introduction to django
ODP
Kivy - Python UI Library for Any Platform
PPT
Введение в Django
PDF
Building Pluggable Web Applications using Django
PDF
Введение в Python и Django
PDF
Django in the Real World
PDF
쉽게 쓰여진 Django
PDF
Scalable Django Architecture
PDF
The Django Web Application Framework
Django introduction
The Django Web Application Framework 2
Андрей Колешко «Что не так с Rails»
Building a Dynamic Website Using Django
Introduction to django
Kivy - Python UI Library for Any Platform
Введение в Django
Building Pluggable Web Applications using Django
Введение в Python и Django
Django in the Real World
쉽게 쓰여진 Django
Scalable Django Architecture
The Django Web Application Framework
Ad

Similar to A Basic Django Introduction (20)

ODP
Introduction to Django
PDF
An Introduction to Django Web Framework
PDF
Introduction to Django
PDF
a hands on guide to django
PPTX
Django crush course
PDF
The Django Web Framework (EuroPython 2006)
PDF
Python & Django TTT
PPTX
Tango with django
PDF
Introduction to Django
ODP
Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
PDF
CCCDjango2010.pdf
PDF
Intro to Web Development Using Python and Django
PDF
GDG Addis - An Introduction to Django and App Engine
PDF
You've done the Django Tutorial, what next?
PDF
django_introduction20141030
PDF
Python網站框架絕技: Django 完全攻略班
PDF
Rapid web application development using django - Part (1)
PDF
Introduction to Python and Django
PDF
Django - basics
PPTX
Django Architecture Introduction
Introduction to Django
An Introduction to Django Web Framework
Introduction to Django
a hands on guide to django
Django crush course
The Django Web Framework (EuroPython 2006)
Python & Django TTT
Tango with django
Introduction to Django
Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
CCCDjango2010.pdf
Intro to Web Development Using Python and Django
GDG Addis - An Introduction to Django and App Engine
You've done the Django Tutorial, what next?
django_introduction20141030
Python網站框架絕技: Django 完全攻略班
Rapid web application development using django - Part (1)
Introduction to Python and Django
Django - basics
Django Architecture Introduction

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