[go: up one dir, main page]

0% found this document useful (0 votes)
35 views33 pages

Djangoppt 130417044531 Phpapp02

Uploaded by

Ajay D. Maindola
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views33 pages

Djangoppt 130417044531 Phpapp02

Uploaded by

Ajay D. Maindola
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

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

You might also like