SlideShare a Scribd company logo
templates in Django material : Training available at Baabtra
Django framework
Training Material
Haris NP
haris@baabtra.com
www.facebook.com/haris.np
9
twitter.com/np_haris
in.linkedin.com/in/harisnp
Courtesy
• www.djangobook.com
Django
• It is a web framework
• It follow MVC architecture (MTV architecture)
– Model View Controller
• Model = Database
• View = Presentation
• Controller = Business Logic

– Model Template View
• Model = Database
• Template = Presentation
• View = Business Logic
• In the case of Django View contains the business logic.
It is different from normal MVC nomenclature.
• For a normal HTML web page to output, there must be
four files.
– Models.py = It contains the database objects. It helps you
to write python codes rather than SQL statements
– View.py = It contains the logic
– Ulrs.py = It contains the configuration /urls in the website
– Html (template) = The presentation or what the user sees
• a view is just a Python function that takes
an HttpRequest as its first parameter and
returns an instance of HttpResponse. In order
for a Python function to be a Django view, it
must do these two things. (There are
exceptions, but we’ll get to those later.)
• For creating a new project in Django
– django-admin.py startproject mysite
• Create a view.py (It is for easy to understand
and naming convention. You can give any
name to the py files)
Stupid error that you can make!
• Always tick file extension when you are
programming in Windows . I created a file
name views.py and in fact it was views.py.py. I
kept getting the error
– “ImportError at /hello/
– No module named views
• Even though the error is caused while using
Django (Python framework), it has nothing to
do with Django. You must try importing the
views.py directly in the python command line.
• If you get the above error come and check
whether .pyc file is created for the view. If not
there is something wrong with the file and
how it was defined.
“Welcome to baabtra program”
• Here we are going to teach you how to print
“Welcome to baabtra – Now the time is
*System Time+” using Django framework
(Python)
• There will be 2 files required for this program
• views.py: This file can be present in Main
folder of the project or in an app.
views.py
• Here baabtrastudentwebsite is the main
folder and is a project (studentweb is an app
inside the project)
views.py
• import datetime
• from django.http import HttpResponse
• def hellobaabtra(request):
#This is created for a simple Hello message
return HttpResponse("Hello Baabtra")
• def welcomecurrent_datetime(request):
now = datetime.datetime.now()
html = "<html><body>Welcome to baabttra: It is
now %s.</body></html>" % now
return HttpResponse(html)
Urls.py
Running the app
• In the command prompt, type
python manage.py runserver
• Type http://127.0.0.1:8000/home/ in the
browser
• Type http://127.0.0.1:8000/homew/ in the
browser
How the code works?
• Django starts with Settings.py file.
• When you run python manage.py runserver, the
script looks for a file called settings.py in the
inner baabtrastudentwebsite directory. This file
contains all sorts of configuration for this
particular Django project, all in uppercase:
TEMPLATE_DIRS, DATABASES, etc. The most
important setting is called ROOT_URLCONF.
ROOT_URLCONF tells Django which Python
module should be used as the URLconf for this
Web site.
• Settings.py
• The autogenerated settings.py contains
a ROOT_URLCONF setting that points to the
autogenerated urls.py. Below is a screenshot
from settings.py
• This corresponds the file
/baabtrastudentwebsite/url
• When a request comes in for a particular URL –
say, a request for /hello/ – Django loads the
URLconf pointed to by
the ROOT_URLCONF setting. Then it checks each
of the URLpatterns in that URLconf, in
order, comparing the requested URL with the
patterns one at a time, until it finds one that
matches. When it finds one that matches, it calls
the view function associated with that
pattern, passing it an HttpRequest object as the
first parameter.
• In summary:
– A request comes in to /hello/.
– Django determines the root URLconf by looking at
the ROOT_URLCONF setting.
– Django looks at all of the URLpatterns in the URLconf
for the first one that matches /hello/.
– If it finds a match, it calls the associated view function.
– The view function returns an HttpResponse.
– Django converts the HttpResponse to the proper HTTP
response, which results in a Web page.
Templates
• Why templates?
– For separating the python code and HTML

• Advantages
– Any design change will not affect the python code
– Separation of duties
Example for a template
<html>
<head><title>Ordering notice</title></head>
<body>
<h1>Baabtra Notification</h1>
<p>Dear {{ candidate_name }},</p>
<p>Congragulations! You have been selected by {{ company }}.</p>
<p>Your subjects are</p>
<ul>
{% for subject in subjectlist %}
<li>{{ subject }}</li>
{% endfor %}
</ul>
{% if distinction %}
<p>Great! You have more than 80% marks.</p>
{% else %}
<p>You have cleared all the tests.</p>
{% endif %}
<p>Sincerely,<br />{{ mentor }}</p>
</body>
</html>
Explanation
• Candidate_name is a variable. Any text
surrounded by a pair of braces
(e.g., {{ candidate_name }}) is a variable
• {% if distinction %} is template tag.
How to use template in Django?
Type python manage.py shell
Template system rely on settings.py. Django looks for an environment variable
called DJANGO_SETTINGS_MODULE, which should be set to the import path
of your settings.py. For example, DJANGO_SETTINGS_MODULE might be set
to ‘baabtrastudentwebsite.settings', assuming baabtrastudentwebsite is on
your Python path. While running python, it is better to use python manage.py
shell as it will reduce errors.
You can find the value in manage.py file of the project.
>>> from django import template
>>> t = template.Template('My training centre is {{
name }}.')
>>> c = template.Context({'name': ‘baabtra'})
>>> print t.render(c)
My training centre is baabtra.
>>> c = template.Context(,'name': ‘baabte'})
>>> print t.render(c)
'My training centre is baabte .
• The second line creates a template object. If
there is an error TemplateSyntaxError is
thrown.
• Block tag and template tag are synonymous.
Rendering a template
• Values are passed to template by giving it a context. A
context is simply a set of template variable names and
their associated values. A template uses this to
populate its variables and evaluate its tags.
• Context class is present in django.template
• Render function returns a unicode object and not a
python string.
• We can also pass string as a template argument to the
constructure. For ex. Str_temp ‘My training centre is {{
name --.‘
• t = template.Template(Str_temp)
templates in Django material : Training available at Baabtra
• You can render the same template with
multiple contexts.
Using Templates in views
• Django provides template-loading API
• In the settings.py file, the template directory
name is mentioned under TEMPLATE_DIRS
tag.
views.py
• def templatecalling(request):
now = datetime.datetime.now()
t = get_template('welcome.html')
html = t.render(Context({'current_date': now}))
return HttpResponse(html)
Welcome.html

<html><body>Welcome to baabttra: It is now {{ now }}.</body></html>
settings.py
urls.py
http://127.0.0.1:8000/tempex/
• Now if you want to give the relative path, you
can follow the below steps:
– Settings.py
– Please add
• import os.path
• PROJECT_PATH =
os.path.realpath(os.path.dirname(__file__))
• Now run the application again.
Possible errors
• TemplateDoesNotExist at /tempex/
• If we are not giving the absolute path for the
template folder, you need to put the template
under the project folder or app with the same
name as that of project. Our program runs
under the folder with the same name as that
of the project.
Refresh the page 
• Please note that in this case we have not given
the absolute path.
Include Template Tag
• {% include template_name %}
• For example, we want to include a home
template in more than one file. In our
previous example, we want to create a master
page which will be used in two pages.
Problem statement
• Create a master page template which will be
included in two templates. The home template
will have
– This is from master page

• The first and second template will have “This is
first template” and “This is second template”
• ViewName:
v_baabtrainctemplate1, v_baabtrainctemplate2
• Url Name: url_ baabtrainctemplate1, url_
baabtrainctemplate2
views.py
Solution
• view.py page
views.py
def v_baabtrainctemplate1(request):
now = datetime.datetime.now()
t = get_template('firstbaabtra.html')
html = t.render(Context({'now': now}, {'name':'First Name'}))
return HttpResponse(html)
def v_baabtrainctemplate2(request):
now = datetime.datetime.now()
t = get_template('secondbaabtra.html')
html = t.render(Context({'now': now},{'name':'Second Name'}))
return HttpResponse(html)
urls.py
templates
• Code under firstbaabtra.html
<html>
<body>
{% include "masterpage.html" %}
<br>

This is the first template. <br>
Welcome to baabtra: It is now {{ now }}.
</body></html>
• HTML inside masterpage.html
There is no html tags used here.
This is from master page
Result when run
• The author takes corporate trainings in
Android, Java, JQuery, JavaScript and Python. In case
if your organization needs training, please connect
through www.massbaab.com/baabtra.
• Baabtra provides both online and offline trainings for
candidates who want to learn latest programming
technologies , frameworks like
codeigniter, django, android, iphone app
development
• Baabtra also provides basic training in
SQL, .NET, PHP, Java and Python who wants to start
their career in IT.
templates in Django material : Training available at Baabtra

More Related Content

PDF
The Django Book chapter 4 templates (supplement)
KEY
Jumpstart Django
PPTX
Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]
PPTX
Tango with django
PDF
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010
PDF
The Django Book - Chapter 5: Models
PDF
Slides
PDF
Data Migrations in the App Engine Datastore
The Django Book chapter 4 templates (supplement)
Jumpstart Django
Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]
Tango with django
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010
The Django Book - Chapter 5: Models
Slides
Data Migrations in the App Engine Datastore

What's hot (20)

PPTX
Parallel batch processing with spring batch slideshare
PDF
Restful App Engine
PDF
Drupal8 for Symfony Developers (PHP Day Verona 2017)
PDF
2 introduction-php-mvc-cakephp-m2-installation-slides
PDF
PloneNG: What's new in Plone 4.2, 4.3, and beyond
PPTX
How to perform debounce in react
PDF
Basic Crud In Django
PDF
Java ap is you should know
KEY
Spring Batch Behind the Scenes
PDF
How does get template part works in twenty ten theme
PDF
Design patterns revisited with PHP 5.3
PDF
Into The Box 2018 - CBT
PDF
Object Oriented PHP - PART-2
ODP
Perl Teach-In (part 2)
PPT
PDF
AJAX Transport Layer
PPTX
Adding a modern twist to legacy web applications
PPT
Testing persistence in PHP with DbUnit
PDF
Flamingo Hello World Tutorial
PDF
Implement react pagination with react hooks and react paginate
Parallel batch processing with spring batch slideshare
Restful App Engine
Drupal8 for Symfony Developers (PHP Day Verona 2017)
2 introduction-php-mvc-cakephp-m2-installation-slides
PloneNG: What's new in Plone 4.2, 4.3, and beyond
How to perform debounce in react
Basic Crud In Django
Java ap is you should know
Spring Batch Behind the Scenes
How does get template part works in twenty ten theme
Design patterns revisited with PHP 5.3
Into The Box 2018 - CBT
Object Oriented PHP - PART-2
Perl Teach-In (part 2)
AJAX Transport Layer
Adding a modern twist to legacy web applications
Testing persistence in PHP with DbUnit
Flamingo Hello World Tutorial
Implement react pagination with react hooks and react paginate
Ad

Similar to templates in Django material : Training available at Baabtra (20)

PDF
Django Introduction & Tutorial
PPTX
Web development with django - Basics Presentation
PDF
Introduction to django
KEY
Introduction Django
PDF
The Django Book / Chapter 3: Views and URLconfs
PDF
GDG Addis - An Introduction to Django and App Engine
PDF
PDF
Build and deploy Python Django project
PPTX
WRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptx
PPTX
Django crush course
PPTX
PPTX
Discovering Django - zekeLabs
KEY
國民雲端架構 Django + GAE
PDF
django_introduction20141030
PDF
Django
PDF
Django tutorial
PDF
Mini Curso de Django
PDF
Django 1.10.3 Getting started
PPT
Mini Curso Django Ii Congresso Academico Ces
Django Introduction & Tutorial
Web development with django - Basics Presentation
Introduction to django
Introduction Django
The Django Book / Chapter 3: Views and URLconfs
GDG Addis - An Introduction to Django and App Engine
Build and deploy Python Django project
WRStmlDSQUmUrZpQ0tFJ4Q_a36bc57fe1a24dd8bc5ba549736e406f_C2-Week2.pptx
Django crush course
Discovering Django - zekeLabs
國民雲端架構 Django + GAE
django_introduction20141030
Django
Django tutorial
Mini Curso de Django
Django 1.10.3 Getting started
Mini Curso Django Ii Congresso Academico Ces
Ad

More from baabtra.com - No. 1 supplier of quality freshers (20)

PPTX
Agile methodology and scrum development
PDF
Acquiring new skills what you should know
PDF
Baabtra.com programming at school
PDF
99LMS for Enterprises - LMS that you will love
PPTX
Chapter 6 database normalisation
PPTX
Chapter 5 transactions and dcl statements
PPTX
Chapter 4 functions, views, indexing
PPTX
PPTX
Chapter 2 grouping,scalar and aggergate functions,joins inner join,outer join
PPTX
Chapter 1 introduction to sql server
PPTX
Chapter 1 introduction to sql server
Agile methodology and scrum development
Acquiring new skills what you should know
Baabtra.com programming at school
99LMS for Enterprises - LMS that you will love
Chapter 6 database normalisation
Chapter 5 transactions and dcl statements
Chapter 4 functions, views, indexing
Chapter 2 grouping,scalar and aggergate functions,joins inner join,outer join
Chapter 1 introduction to sql server
Chapter 1 introduction to sql server

Recently uploaded (20)

PDF
LDMMIA Reiki Yoga Finals Review Spring Summer
PDF
Computing-Curriculum for Schools in Ghana
PDF
Practical Manual AGRO-233 Principles and Practices of Natural Farming
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
Complications of Minimal Access Surgery at WLH
PPTX
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
PDF
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
PPTX
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
Orientation - ARALprogram of Deped to the Parents.pptx
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
PDF
RMMM.pdf make it easy to upload and study
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PPTX
History, Philosophy and sociology of education (1).pptx
PPTX
Introduction to Building Materials
PDF
Weekly quiz Compilation Jan -July 25.pdf
PDF
What if we spent less time fighting change, and more time building what’s rig...
PDF
Empowerment Technology for Senior High School Guide
PDF
IGGE1 Understanding the Self1234567891011
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
LDMMIA Reiki Yoga Finals Review Spring Summer
Computing-Curriculum for Schools in Ghana
Practical Manual AGRO-233 Principles and Practices of Natural Farming
Chinmaya Tiranga quiz Grand Finale.pdf
Complications of Minimal Access Surgery at WLH
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Orientation - ARALprogram of Deped to the Parents.pptx
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
RMMM.pdf make it easy to upload and study
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
History, Philosophy and sociology of education (1).pptx
Introduction to Building Materials
Weekly quiz Compilation Jan -July 25.pdf
What if we spent less time fighting change, and more time building what’s rig...
Empowerment Technology for Senior High School Guide
IGGE1 Understanding the Self1234567891011
Paper A Mock Exam 9_ Attempt review.pdf.

templates in Django material : Training available at Baabtra

  • 2. Django framework Training Material Haris NP haris@baabtra.com www.facebook.com/haris.np 9 twitter.com/np_haris in.linkedin.com/in/harisnp
  • 4. Django • It is a web framework • It follow MVC architecture (MTV architecture) – Model View Controller • Model = Database • View = Presentation • Controller = Business Logic – Model Template View • Model = Database • Template = Presentation • View = Business Logic
  • 5. • In the case of Django View contains the business logic. It is different from normal MVC nomenclature. • For a normal HTML web page to output, there must be four files. – Models.py = It contains the database objects. It helps you to write python codes rather than SQL statements – View.py = It contains the logic – Ulrs.py = It contains the configuration /urls in the website – Html (template) = The presentation or what the user sees
  • 6. • a view is just a Python function that takes an HttpRequest as its first parameter and returns an instance of HttpResponse. In order for a Python function to be a Django view, it must do these two things. (There are exceptions, but we’ll get to those later.)
  • 7. • For creating a new project in Django – django-admin.py startproject mysite
  • 8. • Create a view.py (It is for easy to understand and naming convention. You can give any name to the py files)
  • 9. Stupid error that you can make! • Always tick file extension when you are programming in Windows . I created a file name views.py and in fact it was views.py.py. I kept getting the error – “ImportError at /hello/ – No module named views
  • 10. • Even though the error is caused while using Django (Python framework), it has nothing to do with Django. You must try importing the views.py directly in the python command line.
  • 11. • If you get the above error come and check whether .pyc file is created for the view. If not there is something wrong with the file and how it was defined.
  • 12. “Welcome to baabtra program” • Here we are going to teach you how to print “Welcome to baabtra – Now the time is *System Time+” using Django framework (Python) • There will be 2 files required for this program • views.py: This file can be present in Main folder of the project or in an app.
  • 13. views.py • Here baabtrastudentwebsite is the main folder and is a project (studentweb is an app inside the project)
  • 14. views.py • import datetime • from django.http import HttpResponse • def hellobaabtra(request): #This is created for a simple Hello message return HttpResponse("Hello Baabtra") • def welcomecurrent_datetime(request): now = datetime.datetime.now() html = "<html><body>Welcome to baabttra: It is now %s.</body></html>" % now return HttpResponse(html)
  • 16. Running the app • In the command prompt, type python manage.py runserver
  • 19. How the code works? • Django starts with Settings.py file. • When you run python manage.py runserver, the script looks for a file called settings.py in the inner baabtrastudentwebsite directory. This file contains all sorts of configuration for this particular Django project, all in uppercase: TEMPLATE_DIRS, DATABASES, etc. The most important setting is called ROOT_URLCONF. ROOT_URLCONF tells Django which Python module should be used as the URLconf for this Web site.
  • 21. • The autogenerated settings.py contains a ROOT_URLCONF setting that points to the autogenerated urls.py. Below is a screenshot from settings.py • This corresponds the file /baabtrastudentwebsite/url
  • 22. • When a request comes in for a particular URL – say, a request for /hello/ – Django loads the URLconf pointed to by the ROOT_URLCONF setting. Then it checks each of the URLpatterns in that URLconf, in order, comparing the requested URL with the patterns one at a time, until it finds one that matches. When it finds one that matches, it calls the view function associated with that pattern, passing it an HttpRequest object as the first parameter.
  • 23. • In summary: – A request comes in to /hello/. – Django determines the root URLconf by looking at the ROOT_URLCONF setting. – Django looks at all of the URLpatterns in the URLconf for the first one that matches /hello/. – If it finds a match, it calls the associated view function. – The view function returns an HttpResponse. – Django converts the HttpResponse to the proper HTTP response, which results in a Web page.
  • 24. Templates • Why templates? – For separating the python code and HTML • Advantages – Any design change will not affect the python code – Separation of duties
  • 25. Example for a template <html> <head><title>Ordering notice</title></head> <body> <h1>Baabtra Notification</h1> <p>Dear {{ candidate_name }},</p> <p>Congragulations! You have been selected by {{ company }}.</p> <p>Your subjects are</p> <ul> {% for subject in subjectlist %} <li>{{ subject }}</li> {% endfor %} </ul> {% if distinction %} <p>Great! You have more than 80% marks.</p> {% else %} <p>You have cleared all the tests.</p> {% endif %} <p>Sincerely,<br />{{ mentor }}</p> </body> </html>
  • 26. Explanation • Candidate_name is a variable. Any text surrounded by a pair of braces (e.g., {{ candidate_name }}) is a variable • {% if distinction %} is template tag.
  • 27. How to use template in Django? Type python manage.py shell Template system rely on settings.py. Django looks for an environment variable called DJANGO_SETTINGS_MODULE, which should be set to the import path of your settings.py. For example, DJANGO_SETTINGS_MODULE might be set to ‘baabtrastudentwebsite.settings', assuming baabtrastudentwebsite is on your Python path. While running python, it is better to use python manage.py shell as it will reduce errors. You can find the value in manage.py file of the project.
  • 28. >>> from django import template >>> t = template.Template('My training centre is {{ name }}.') >>> c = template.Context({'name': ‘baabtra'}) >>> print t.render(c) My training centre is baabtra. >>> c = template.Context(,'name': ‘baabte'}) >>> print t.render(c) 'My training centre is baabte .
  • 29. • The second line creates a template object. If there is an error TemplateSyntaxError is thrown. • Block tag and template tag are synonymous.
  • 30. Rendering a template • Values are passed to template by giving it a context. A context is simply a set of template variable names and their associated values. A template uses this to populate its variables and evaluate its tags. • Context class is present in django.template • Render function returns a unicode object and not a python string. • We can also pass string as a template argument to the constructure. For ex. Str_temp ‘My training centre is {{ name --.‘ • t = template.Template(Str_temp)
  • 32. • You can render the same template with multiple contexts.
  • 33. Using Templates in views • Django provides template-loading API • In the settings.py file, the template directory name is mentioned under TEMPLATE_DIRS tag.
  • 34. views.py • def templatecalling(request): now = datetime.datetime.now() t = get_template('welcome.html') html = t.render(Context({'current_date': now})) return HttpResponse(html)
  • 35. Welcome.html <html><body>Welcome to baabttra: It is now {{ now }}.</body></html>
  • 39. • Now if you want to give the relative path, you can follow the below steps: – Settings.py – Please add • import os.path • PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
  • 40. • Now run the application again.
  • 42. • If we are not giving the absolute path for the template folder, you need to put the template under the project folder or app with the same name as that of project. Our program runs under the folder with the same name as that of the project.
  • 43. Refresh the page  • Please note that in this case we have not given the absolute path.
  • 44. Include Template Tag • {% include template_name %} • For example, we want to include a home template in more than one file. In our previous example, we want to create a master page which will be used in two pages.
  • 45. Problem statement • Create a master page template which will be included in two templates. The home template will have – This is from master page • The first and second template will have “This is first template” and “This is second template” • ViewName: v_baabtrainctemplate1, v_baabtrainctemplate2 • Url Name: url_ baabtrainctemplate1, url_ baabtrainctemplate2
  • 48. views.py def v_baabtrainctemplate1(request): now = datetime.datetime.now() t = get_template('firstbaabtra.html') html = t.render(Context({'now': now}, {'name':'First Name'})) return HttpResponse(html) def v_baabtrainctemplate2(request): now = datetime.datetime.now() t = get_template('secondbaabtra.html') html = t.render(Context({'now': now},{'name':'Second Name'})) return HttpResponse(html)
  • 51. • Code under firstbaabtra.html <html> <body> {% include "masterpage.html" %} <br> This is the first template. <br> Welcome to baabtra: It is now {{ now }}. </body></html>
  • 52. • HTML inside masterpage.html There is no html tags used here. This is from master page
  • 54. • The author takes corporate trainings in Android, Java, JQuery, JavaScript and Python. In case if your organization needs training, please connect through www.massbaab.com/baabtra. • Baabtra provides both online and offline trainings for candidates who want to learn latest programming technologies , frameworks like codeigniter, django, android, iphone app development • Baabtra also provides basic training in SQL, .NET, PHP, Java and Python who wants to start their career in IT.