SlideShare a Scribd company logo
Web development with Django 
Š Shrinath Shenoy
What is Django 
Django is a MVC like framework ( Django 
community call it as MTV - Model, View, Template 
) written in pure python 
Django can be used with databases like 
Postgresql, MySQL, sqlite, MongoDB, Oracle etc..
Who are using Django 
Mozilla ( support.mozilla.com, addons.mozilla.org ) 
Google ( developers.google.com, app engine cloud sql 
) 
Disqus 
Pinterest 
Instagram 
bitbucket 
newyorktimes.com (represent) 
washingtonpost.com 
guardian.co.uk 
developer.vodafone.com 
nationalgeographic.com
Creating a django project 
Start a new project from 
django-admin.py startproject projectname 
It will create project folders in the following 
structure 
projectname/ 
manage.py 
projectname/ 
__init__.py 
settings.py 
urls.py 
wsgi.py
Django Project Structure 
python manage.py startapp appname 
projectname/ 
manage.py 
appname/ 
__init__.py 
models.py 
tests.py 
views.py 
projectname/ 
__init__.py 
settings.py 
urls.py 
wsgi.py
settings.py 
This contains all the settings related to the 
project. Like DB username-password-connection- 
port, middlewares, logs, dev 
settings, media path etc. 
The settings.py file is used as default 
configuration file while running the server. If you 
have some other settings file then you can tell 
the server to use that by setting the environment 
vairable DJANGO_SETTINGS_MODULE
urls.py 
• URL patterns are definied in this file. 
• URL patterns will be made up of regular 
expressions of the url patterns. 
• The function/view that needs to be called are 
mapped here. 
• Best Practice : Maintain a urls.py inside each app 
to avoid the global urls.py mess
A typical urls mapping looks like this 
from django.conf.urls import patterns, url 
urlpatterns += patterns('', 
urlpatterns = ( 
url(r'^$', views.index, name='index'), 
)
views.py 
The request lands here after the url requested is mapped to 
a view through middlewares. 
There are two types of view. That a user can opt for 
depending on the requirement. 
1. Function Based View 
2. Classbased view 
Function based views are normal python functions that take 
request and curresponding custom parameter if any. 
Class Based views are the special views that is required to 
be inheriting the django's predefined view/any other class 
that satisfy the condition to map the url to a class based 
view ( Better to inherit the view class given by django :) )
• There are lot of built in views that can be used 
accordingly. ( e.g. listview - if you want just to list 
the objects of a model that satisfy a queryset ) 
• url definition will take function based view ( FBV 
) as second argument. This will make the view 
function gets called for that url. Where as Class 
based view's as_view() function should be feed 
to url definition. The reason is given below. 
• Class Based Views ( CBV ) has the intelligence 
to find the method used in request ( get, post or 
any other ) and dispatche the data come along 
with the request to curresonding method.
• Each view must return a response or raise the relevant 
exeption if any. 
• response can contain the django template, file, JSON 
objects or even just HTTP Status codes.
A typical Django FBV would look like this 
from django.http import HttpResponse 
import datetime 
def current_datetime(request): 
now = datetime.datetime.now() 
html = "<html><body>Its now %s</body></html>" 
% now 
return HttpResponse(html)
A typical Django CBV would look like this 
import datetime 
from django.http import HttpResponse 
from django.views.generic import View 
class ShowDateView(View): 
def get(request): 
now = datetime.datetime.now() 
html = "<html><body>Its now %s</body></html>" 
% now 
return HttpResponse(html)
models.py 
Models.py file is the place to put the details about 
the DB tables that we need in our app. 
Models can be imagined as DB Table - definition 
written in python :) 
Models are the normal python classes that inherit 
from the Django "Model" class found in 
django.db.models module. 
The class attributes/member-variables defines the 
columns and data type of their curresponding db 
tables.
• models will have thier own "manager" objects 
that will be used to query the table. 
• Django ORM provides the "query functions" in 
each models through thier "manager" objects. 
• Each model object will have their save() method 
to save the model "instance" into database. 
• models have built in validators which will validate 
the model object values against their datatype 
and constraints.
A typical django model would look like 
from django.db import models 
class UserProfile(models.Model): 
first_name = models.CharField(max_lenght=10) 
last_name = models.CharField(max_lenght=10) 
phone_number = models.IntegerField(null=True)
Availble Built in Fields in Django models 
AutoField 
BigIntegerField 
BooleanField 
CharField 
CommaSeparatedIntegerField 
DateField 
DateTimeField 
DecimalField 
EmailField 
FileField
forms.py 
Django forms which is used to process web form 
data are similar to django model classes. But 
django froms deal with the incoming data from 
client rather than database. 
Similar to Django models django forms are python 
classes inheriting from Django's django.form 
module
A django form declaration would look like 
from django import forms 
class LoginForm(forms.Form): 
username = forms.CharField(max_length=12) 
password = forms.CharField(max_lenght=12, att)
Django Forms built in Fields 
BooleanFieldCharField ChoiceField 
DateField DateTimeField 
EmailField FileField 
FloatField ImageField 
IPAddressField GenericIPAddressField 
TypedMultipleChoiceField NullBooleanField 
SlugField TimeField 
TypedChoiceField DecimalField 
FilePathField IntegerField 
MultipleChoiceField RegexField 
URLField
templates 
Django templates are the files (Usually HTML ) which allow 
us to insert the django variables inside them and write very 
minimalistic processing like iterating over a loop, trimming 
the string, adding integers inside them etc. 
Django templates are designed to make it reusable. Like a 
class, you can inherite a template and override the portions 
of it. 
Django template engine comes with built in tags and filters 
which can be used to process the data before rendering. 
Even django allows you to create your own custom tags 
and filters. So that you can define your custom behaviors in 
the template.
Django templates should be written in such a way that only 
rendering process will be held in that. No complex logical 
algorithm shoul be handled inside the templates. 
Django template are designed such that it uses the less of 
programming language, and more of the designing part so 
that any web designer knowing only creating 
HTML/CSS/Javascript can develop it without having the 
exposure to the python.
Django Principles 
DRY ( Don't Repeat Yourself ) 
Loose Coupling 
Less Code 
Explicit is better than implicit 
Infinite flexibility in url 
Separate logic from presentation 
Be decoupled from HTML
Benifits/Pros of using Django 
Easy to understand and easily maintainable 
code 
Write less do more with python-django 
combination. 
Lot of opensource plugins available that can be 
used along with django. You just need to 
import and use it in your code.
Django has lot of built-ins which are more 
commonly needed functionalities in a web app 
along with additional goodies. 
• User authentication and password management 
• Pagination 
• Form-Model validation 
• Caching 
• Admin Panel 
• Session management 
• Protection via clickjacking and cross site
• Localization 
• Email Integration 
• RSS Feeds Integration 
• Sitemap Integration 
• CSV/PDF save/export integration 
• Geographical Query Support
Thank You..!! 
: 
)

More Related Content

What's hot (20)

Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial
之宇 趙
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for Beginners
Jason Davies
 
Django Tutorial | Django Web Development With Python | Django Training and Ce...
Django Tutorial | Django Web Development With Python | Django Training and Ce...Django Tutorial | Django Web Development With Python | Django Training and Ce...
Django Tutorial | Django Web Development With Python | Django Training and Ce...
Edureka!
 
Django Girls Tutorial
Django Girls TutorialDjango Girls Tutorial
Django Girls Tutorial
Kishimi Ibrahim Ishaq
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
Knoldus Inc.
 
Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and Django
Michael Pirnat
 
Introduction to django
Introduction to djangoIntroduction to django
Introduction to django
Ilian Iliev
 
Django
DjangoDjango
Django
Kangjin Jun
 
Django - Python MVC Framework
Django - Python MVC FrameworkDjango - Python MVC Framework
Django - Python MVC Framework
Bala Kumar
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
Arulmurugan Rajaraman
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
Max Claus Nunes
 
Introduction to django framework
Introduction to django frameworkIntroduction to django framework
Introduction to django framework
Knoldus Inc.
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask Presentation
Parag Mujumdar
 
jQuery - Chapter 1 - Introduction
 jQuery - Chapter 1 - Introduction jQuery - Chapter 1 - Introduction
jQuery - Chapter 1 - Introduction
WebStackAcademy
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
ShahDhruv21
 
Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...
Edureka!
 
Basics of JavaScript
Basics of JavaScriptBasics of JavaScript
Basics of JavaScript
Bala Narayanan
 
django
djangodjango
django
Mohamed Essam
 
Django Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python DevelopersDjango Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python Developers
Rosario Renga
 
Python/Django Training
Python/Django TrainingPython/Django Training
Python/Django Training
University of Technology
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial
之宇 趙
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for Beginners
Jason Davies
 
Django Tutorial | Django Web Development With Python | Django Training and Ce...
Django Tutorial | Django Web Development With Python | Django Training and Ce...Django Tutorial | Django Web Development With Python | Django Training and Ce...
Django Tutorial | Django Web Development With Python | Django Training and Ce...
Edureka!
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
Knoldus Inc.
 
Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and Django
Michael Pirnat
 
Introduction to django
Introduction to djangoIntroduction to django
Introduction to django
Ilian Iliev
 
Django - Python MVC Framework
Django - Python MVC FrameworkDjango - Python MVC Framework
Django - Python MVC Framework
Bala Kumar
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
Max Claus Nunes
 
Introduction to django framework
Introduction to django frameworkIntroduction to django framework
Introduction to django framework
Knoldus Inc.
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask Presentation
Parag Mujumdar
 
jQuery - Chapter 1 - Introduction
 jQuery - Chapter 1 - Introduction jQuery - Chapter 1 - Introduction
jQuery - Chapter 1 - Introduction
WebStackAcademy
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
ShahDhruv21
 
Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...
Edureka!
 
Basics of JavaScript
Basics of JavaScriptBasics of JavaScript
Basics of JavaScript
Bala Narayanan
 
Django Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python DevelopersDjango Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python Developers
Rosario Renga
 

Similar to Web development with django - Basics Presentation (20)

Rapid web application development using django - Part (1)
Rapid web application development using django - Part (1)Rapid web application development using django - Part (1)
Rapid web application development using django - Part (1)
Nishant Soni
 
GDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineGDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App Engine
Yared Ayalew
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
Joaquim Rocha
 
WRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptx
WRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptxWRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptx
WRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptx
salemsg
 
django_introduction20141030
django_introduction20141030django_introduction20141030
django_introduction20141030
Kevin Wu
 
A gentle intro to the Django Framework
A gentle intro to the Django FrameworkA gentle intro to the Django Framework
A gentle intro to the Django Framework
Ricardo Soares
 
learnpythondjangochapteroneintroduction.pptx
learnpythondjangochapteroneintroduction.pptxlearnpythondjangochapteroneintroduction.pptx
learnpythondjangochapteroneintroduction.pptx
bestboybulshaawi
 
Django
DjangoDjango
Django
Harmeet Lamba
 
بررسی چارچوب جنگو
بررسی چارچوب جنگوبررسی چارچوب جنگو
بررسی چارچوب جنگو
railsbootcamp
 
Django Frequently Asked Interview Questions
Django Frequently Asked Interview QuestionsDjango Frequently Asked Interview Questions
Django Frequently Asked Interview Questions
AshishMishra308598
 
Django by rj
Django by rjDjango by rj
Django by rj
Shree M.L.Kakadiya MCA mahila college, Amreli
 
DJango
DJangoDJango
DJango
Sunil OS
 
* DJANGO - The Python Framework - Low Kian Seong, Developer
    * DJANGO - The Python Framework - Low Kian Seong, Developer    * DJANGO - The Python Framework - Low Kian Seong, Developer
* DJANGO - The Python Framework - Low Kian Seong, Developer
Linuxmalaysia Malaysia
 
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesJBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
Tikal Knowledge
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
Tony Frame
 
templates in Django material : Training available at Baabtra
templates in Django material : Training available at Baabtratemplates in Django material : Training available at Baabtra
templates in Django material : Training available at Baabtra
baabtra.com - No. 1 supplier of quality freshers
 
Django 1.10.3 Getting started
Django 1.10.3 Getting startedDjango 1.10.3 Getting started
Django 1.10.3 Getting started
MoniaJ
 
Tango with django
Tango with djangoTango with django
Tango with django
Rajan Kumar Upadhyay
 
Django tutorial
Django tutorialDjango tutorial
Django tutorial
Ksd Che
 
Django cheat sheet
Django cheat sheetDjango cheat sheet
Django cheat sheet
Lam Hoang
 
Rapid web application development using django - Part (1)
Rapid web application development using django - Part (1)Rapid web application development using django - Part (1)
Rapid web application development using django - Part (1)
Nishant Soni
 
GDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineGDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App Engine
Yared Ayalew
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
Joaquim Rocha
 
WRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptx
WRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptxWRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptx
WRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptx
salemsg
 
django_introduction20141030
django_introduction20141030django_introduction20141030
django_introduction20141030
Kevin Wu
 
A gentle intro to the Django Framework
A gentle intro to the Django FrameworkA gentle intro to the Django Framework
A gentle intro to the Django Framework
Ricardo Soares
 
learnpythondjangochapteroneintroduction.pptx
learnpythondjangochapteroneintroduction.pptxlearnpythondjangochapteroneintroduction.pptx
learnpythondjangochapteroneintroduction.pptx
bestboybulshaawi
 
بررسی چارچوب جنگو
بررسی چارچوب جنگوبررسی چارچوب جنگو
بررسی چارچوب جنگو
railsbootcamp
 
Django Frequently Asked Interview Questions
Django Frequently Asked Interview QuestionsDjango Frequently Asked Interview Questions
Django Frequently Asked Interview Questions
AshishMishra308598
 
DJango
DJangoDJango
DJango
Sunil OS
 
* DJANGO - The Python Framework - Low Kian Seong, Developer
    * DJANGO - The Python Framework - Low Kian Seong, Developer    * DJANGO - The Python Framework - Low Kian Seong, Developer
* DJANGO - The Python Framework - Low Kian Seong, Developer
Linuxmalaysia Malaysia
 
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesJBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
Tikal Knowledge
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
Tony Frame
 
Django 1.10.3 Getting started
Django 1.10.3 Getting startedDjango 1.10.3 Getting started
Django 1.10.3 Getting started
MoniaJ
 
Django tutorial
Django tutorialDjango tutorial
Django tutorial
Ksd Che
 
Django cheat sheet
Django cheat sheetDjango cheat sheet
Django cheat sheet
Lam Hoang
 
Ad

Recently uploaded (20)

Issues in AI Presentation and machine learning.pptx
Issues in AI Presentation and machine learning.pptxIssues in AI Presentation and machine learning.pptx
Issues in AI Presentation and machine learning.pptx
Jalalkhan657136
 
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-OffMicro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Tier1 app
 
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdfSecure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Northwind Technologies
 
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfol...
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfol...List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfol...
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfol...
Philip Schwarz
 
Oliveira2024 - Combining GPT and Weak Supervision.pdf
Oliveira2024 - Combining GPT and Weak Supervision.pdfOliveira2024 - Combining GPT and Weak Supervision.pdf
Oliveira2024 - Combining GPT and Weak Supervision.pdf
GiliardGodoi1
 
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdfHow a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
mary rojas
 
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
officeiqai
 
How to purchase, license and subscribe to Microsoft Azure_PDF.pdf
How to purchase, license and subscribe to Microsoft Azure_PDF.pdfHow to purchase, license and subscribe to Microsoft Azure_PDF.pdf
How to purchase, license and subscribe to Microsoft Azure_PDF.pdf
victordsane
 
War Story: Removing Offensive Language from Percona Toolkit
War Story: Removing Offensive Language from Percona ToolkitWar Story: Removing Offensive Language from Percona Toolkit
War Story: Removing Offensive Language from Percona Toolkit
Sveta Smirnova
 
Intranet Examples That Are Changing the Way We Work
Intranet Examples That Are Changing the Way We WorkIntranet Examples That Are Changing the Way We Work
Intranet Examples That Are Changing the Way We Work
BizPortals Solutions
 
Marketing And Sales Software Services.pptx
Marketing And Sales Software Services.pptxMarketing And Sales Software Services.pptx
Marketing And Sales Software Services.pptx
julia smits
 
Optimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing SystemsOptimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing Systems
Insurance Tech Services
 
Agentic AI Desgin Principles in five slides.pptx
Agentic AI Desgin Principles in five slides.pptxAgentic AI Desgin Principles in five slides.pptx
Agentic AI Desgin Principles in five slides.pptx
MOSIUOA WESI
 
Internship in South western railways on software
Internship in South western railways on softwareInternship in South western railways on software
Internship in South western railways on software
abhim5889
 
The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...
Prachi Desai
 
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdfHow to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
QuickBooks Training
 
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Prachi Desai
 
Design by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First DevelopmentDesign by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First Development
Par-Tec S.p.A.
 
Online Queue Management System for Public Service Offices [Focused on Municip...
Online Queue Management System for Public Service Offices [Focused on Municip...Online Queue Management System for Public Service Offices [Focused on Municip...
Online Queue Management System for Public Service Offices [Focused on Municip...
Rishab Acharya
 
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
gauravvmanchandaa200
 
Issues in AI Presentation and machine learning.pptx
Issues in AI Presentation and machine learning.pptxIssues in AI Presentation and machine learning.pptx
Issues in AI Presentation and machine learning.pptx
Jalalkhan657136
 
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-OffMicro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Tier1 app
 
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdfSecure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Northwind Technologies
 
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfol...
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfol...List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfol...
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfol...
Philip Schwarz
 
Oliveira2024 - Combining GPT and Weak Supervision.pdf
Oliveira2024 - Combining GPT and Weak Supervision.pdfOliveira2024 - Combining GPT and Weak Supervision.pdf
Oliveira2024 - Combining GPT and Weak Supervision.pdf
GiliardGodoi1
 
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdfHow a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
mary rojas
 
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
officeiqai
 
How to purchase, license and subscribe to Microsoft Azure_PDF.pdf
How to purchase, license and subscribe to Microsoft Azure_PDF.pdfHow to purchase, license and subscribe to Microsoft Azure_PDF.pdf
How to purchase, license and subscribe to Microsoft Azure_PDF.pdf
victordsane
 
War Story: Removing Offensive Language from Percona Toolkit
War Story: Removing Offensive Language from Percona ToolkitWar Story: Removing Offensive Language from Percona Toolkit
War Story: Removing Offensive Language from Percona Toolkit
Sveta Smirnova
 
Intranet Examples That Are Changing the Way We Work
Intranet Examples That Are Changing the Way We WorkIntranet Examples That Are Changing the Way We Work
Intranet Examples That Are Changing the Way We Work
BizPortals Solutions
 
Marketing And Sales Software Services.pptx
Marketing And Sales Software Services.pptxMarketing And Sales Software Services.pptx
Marketing And Sales Software Services.pptx
julia smits
 
Optimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing SystemsOptimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing Systems
Insurance Tech Services
 
Agentic AI Desgin Principles in five slides.pptx
Agentic AI Desgin Principles in five slides.pptxAgentic AI Desgin Principles in five slides.pptx
Agentic AI Desgin Principles in five slides.pptx
MOSIUOA WESI
 
Internship in South western railways on software
Internship in South western railways on softwareInternship in South western railways on software
Internship in South western railways on software
abhim5889
 
The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...
Prachi Desai
 
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdfHow to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
QuickBooks Training
 
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Prachi Desai
 
Design by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First DevelopmentDesign by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First Development
Par-Tec S.p.A.
 
Online Queue Management System for Public Service Offices [Focused on Municip...
Online Queue Management System for Public Service Offices [Focused on Municip...Online Queue Management System for Public Service Offices [Focused on Municip...
Online Queue Management System for Public Service Offices [Focused on Municip...
Rishab Acharya
 
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
gauravvmanchandaa200
 
Ad

Web development with django - Basics Presentation

  • 1. Web development with Django Š Shrinath Shenoy
  • 2. What is Django Django is a MVC like framework ( Django community call it as MTV - Model, View, Template ) written in pure python Django can be used with databases like Postgresql, MySQL, sqlite, MongoDB, Oracle etc..
  • 3. Who are using Django Mozilla ( support.mozilla.com, addons.mozilla.org ) Google ( developers.google.com, app engine cloud sql ) Disqus Pinterest Instagram bitbucket newyorktimes.com (represent) washingtonpost.com guardian.co.uk developer.vodafone.com nationalgeographic.com
  • 4. Creating a django project Start a new project from django-admin.py startproject projectname It will create project folders in the following structure projectname/ manage.py projectname/ __init__.py settings.py urls.py wsgi.py
  • 5. Django Project Structure python manage.py startapp appname projectname/ manage.py appname/ __init__.py models.py tests.py views.py projectname/ __init__.py settings.py urls.py wsgi.py
  • 6. settings.py This contains all the settings related to the project. Like DB username-password-connection- port, middlewares, logs, dev settings, media path etc. The settings.py file is used as default configuration file while running the server. If you have some other settings file then you can tell the server to use that by setting the environment vairable DJANGO_SETTINGS_MODULE
  • 7. urls.py • URL patterns are definied in this file. • URL patterns will be made up of regular expressions of the url patterns. • The function/view that needs to be called are mapped here. • Best Practice : Maintain a urls.py inside each app to avoid the global urls.py mess
  • 8. A typical urls mapping looks like this from django.conf.urls import patterns, url urlpatterns += patterns('', urlpatterns = ( url(r'^$', views.index, name='index'), )
  • 9. views.py The request lands here after the url requested is mapped to a view through middlewares. There are two types of view. That a user can opt for depending on the requirement. 1. Function Based View 2. Classbased view Function based views are normal python functions that take request and curresponding custom parameter if any. Class Based views are the special views that is required to be inheriting the django's predefined view/any other class that satisfy the condition to map the url to a class based view ( Better to inherit the view class given by django :) )
  • 10. • There are lot of built in views that can be used accordingly. ( e.g. listview - if you want just to list the objects of a model that satisfy a queryset ) • url definition will take function based view ( FBV ) as second argument. This will make the view function gets called for that url. Where as Class based view's as_view() function should be feed to url definition. The reason is given below. • Class Based Views ( CBV ) has the intelligence to find the method used in request ( get, post or any other ) and dispatche the data come along with the request to curresonding method.
  • 11. • Each view must return a response or raise the relevant exeption if any. • response can contain the django template, file, JSON objects or even just HTTP Status codes.
  • 12. A typical Django FBV would look like this from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>Its now %s</body></html>" % now return HttpResponse(html)
  • 13. A typical Django CBV would look like this import datetime from django.http import HttpResponse from django.views.generic import View class ShowDateView(View): def get(request): now = datetime.datetime.now() html = "<html><body>Its now %s</body></html>" % now return HttpResponse(html)
  • 14. models.py Models.py file is the place to put the details about the DB tables that we need in our app. Models can be imagined as DB Table - definition written in python :) Models are the normal python classes that inherit from the Django "Model" class found in django.db.models module. The class attributes/member-variables defines the columns and data type of their curresponding db tables.
  • 15. • models will have thier own "manager" objects that will be used to query the table. • Django ORM provides the "query functions" in each models through thier "manager" objects. • Each model object will have their save() method to save the model "instance" into database. • models have built in validators which will validate the model object values against their datatype and constraints.
  • 16. A typical django model would look like from django.db import models class UserProfile(models.Model): first_name = models.CharField(max_lenght=10) last_name = models.CharField(max_lenght=10) phone_number = models.IntegerField(null=True)
  • 17. Availble Built in Fields in Django models AutoField BigIntegerField BooleanField CharField CommaSeparatedIntegerField DateField DateTimeField DecimalField EmailField FileField
  • 18. forms.py Django forms which is used to process web form data are similar to django model classes. But django froms deal with the incoming data from client rather than database. Similar to Django models django forms are python classes inheriting from Django's django.form module
  • 19. A django form declaration would look like from django import forms class LoginForm(forms.Form): username = forms.CharField(max_length=12) password = forms.CharField(max_lenght=12, att)
  • 20. Django Forms built in Fields BooleanFieldCharField ChoiceField DateField DateTimeField EmailField FileField FloatField ImageField IPAddressField GenericIPAddressField TypedMultipleChoiceField NullBooleanField SlugField TimeField TypedChoiceField DecimalField FilePathField IntegerField MultipleChoiceField RegexField URLField
  • 21. templates Django templates are the files (Usually HTML ) which allow us to insert the django variables inside them and write very minimalistic processing like iterating over a loop, trimming the string, adding integers inside them etc. Django templates are designed to make it reusable. Like a class, you can inherite a template and override the portions of it. Django template engine comes with built in tags and filters which can be used to process the data before rendering. Even django allows you to create your own custom tags and filters. So that you can define your custom behaviors in the template.
  • 22. Django templates should be written in such a way that only rendering process will be held in that. No complex logical algorithm shoul be handled inside the templates. Django template are designed such that it uses the less of programming language, and more of the designing part so that any web designer knowing only creating HTML/CSS/Javascript can develop it without having the exposure to the python.
  • 23. Django Principles DRY ( Don't Repeat Yourself ) Loose Coupling Less Code Explicit is better than implicit Infinite flexibility in url Separate logic from presentation Be decoupled from HTML
  • 24. Benifits/Pros of using Django Easy to understand and easily maintainable code Write less do more with python-django combination. Lot of opensource plugins available that can be used along with django. You just need to import and use it in your code.
  • 25. Django has lot of built-ins which are more commonly needed functionalities in a web app along with additional goodies. • User authentication and password management • Pagination • Form-Model validation • Caching • Admin Panel • Session management • Protection via clickjacking and cross site
  • 26. • Localization • Email Integration • RSS Feeds Integration • Sitemap Integration • CSV/PDF save/export integration • Geographical Query Support