SlideShare a Scribd company logo
Introduction to Django
        pyArkansas


        Wade Austin
        @k_wade_a
What is Django?
“Django is a high-level Python Web framework that
encourages rapid development and clean, pragmatic
design.”
                                     www.djangoproject.com


• Created out of the newspaper industry
• Help developers build sites fast
• Encourage Reuse and Lose Coupling
• DRY (don’t repeat yourself)
• Minimal Code
• Opinionated
Batteries Included
             django.contrib


• Admin Interface for editing data.
• Auth module for user accounts
• Syndication module for generation of RSS
• Static Pages
Active Community

• Many Community Contributed Apps
• Pinax
  http://pinaxproject.com/


• Django Packages
  http://djangopackages.com/
Django Projects
•   A project is your website.

•   Projects contain the configuration information for
    your site.

•   Create a project:
    django-admin.py startproject [PROJECT_NAME]

•   Projects contain 3 files:
    •   settings.py - configuration information for your project

    •   urls.py - URL routes defined by your project

    •   manage.py - alias of django-admin.py tuned to your project
Django Applications
• Projects are built from Applications
• Apps encapsulate some piece of
  functionality
  •   blog, photo gallery, shopping cart, etc.

• Apps can be reused
• Apps are Python Packages
• manage.py startapp [MY_APP_NAME]
Django Application
     Components
• Models - Your Data
• Views - Rules for Accessing Data
• Templates - Displays Data
• URL Patterns - Maps URLs to Views
Models

• Describes the data in your apps
• Defined in an app’s models.py file
• Map Python Classes to Database Tables
• Provides an API for creating, retrieving,
  changing and deleting data
Blog Data Definition
CREATE TABLE "blog_category" (
   "id" integer NOT NULL PRIMARY KEY,
   "name" varchar(50) NOT NULL
);

CREATE TABLE "blog_blogpost" (
   "id" integer NOT NULL PRIMARY KEY,
   "title" varchar(100) NOT NULL,
   "slug" varchar(50) NOT NULL UNIQUE,
   "publish_date" datetime NOT NULL,
   "is_published" bool NOT NULL,
   "content" text NOT NULL,
   "category_id" integer NOT NULL REFERENCES "blog_category" ("id")
);
Django Hides the SQL


• SQL is not consistent across databases
• Difficult to store in version control
Model Example
from django.db import models
from datetime import datetime

class Category(models.Model):
    name = models.CharField(max_length=50)

class BlogPost(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(unique=True)
    publish_date = models.DateTimeField(default=datetime.now)
    is_published = models.BooleanField(default=False)
    content = models.TextField(blank=True)
    category = models.ForeignKey(Category,
               related_name=‘posts’)
Creating your database

• manage.py syncdb command creates tables
  from models
• Creates all models for any app in your
  project’s INSTALLED_APPS setting
Querying Models
posts = BlogPost.objects.all()

publshed_posts = BlogPost.objects.filter(is_published=True)

news_posts = BlogPost.objects.filter(category__name = 'News')

c = Category(
    name="News"
)
c.save()
Views

• Business Logic
• Perform a task and render output
  (HTML/JSON/XML)


• Python function that takes an HttpRequest
  and returns an HttpResponse
• Defined in an app’s views.py file
Hello World View

from django.http import HttpResponse

def hello_world(request):
    return HttpResponse("Hello World")
Latest Posts View
from django.shortcuts import render
from blog.models import BlogPost

def get_latest_posts(request):
    today = datetime.datetime.now()
    posts = BlogPost.objects.filter(is_published=True).
                    filter(publish_date__lte=today).
                    order_by('-publish_date')

    return render( request, 'blog/latest_posts.html',
                   {'posts':posts})
Post Detail View
from django.shortcuts import render, get_object_or_404
from blog.models import BlogPost

def blog_post_detail(request, slug):
    post = get_object_or_404(BlogPost, slug=slug)
    return render( request, "blog/blogpost_detail.html",
                   {"post":post})
URL Routes

• Defines the URLs used in your project
• Maps a URL to a View Function
• Defined using Regular Expressions
• Defined in an app’s urls.py file.
URL Example

urlpatterns = patterns('',
    url(r'^latest_posts/$',
        'blog.views.get_latest_posts',
        name='blog_blogpost_latest'),

    url(r'^post/(?P<slug>[-w]+)/$',
        'blog.views.blog_post_detail',
        name='blog_blogpost_detail'),
)
Templates
• Describes the Presentation of your data
• Separates Logic from Presentation
• Simple Syntax
• Designer Friendly
• Supports Reuse through inheritance and
  inclusion
• Blocks allow child templates to insert
  content into parent templates
Template Syntax

• Variables: {{variable-name}}
• Tags: Perform logic
  {% include “_form.html” %}
• Filters: Operate on data
  {{post.publish_date|date:"m/d/Y"}}
Template “base.html”
<html>
<head>
    <title>{% block title %}{% endblock %}My Site</title>
    <link rel="stylesheet" href="{{STATIC_URL}}css/screen.css"
                    media="screen, projection"/>
</head>
<body>
    <h1>My test site</h1>

   {% block content %}
   {% endblock %}

</body>
</html>
Template
            “latest_posts.html”
{% extends "base.html" %}

{% block title %}Latest Blog Posts -
{% endblock %}

{% block content %}
    <h2>Latest Blog Posts</h1>
    {% for p in posts %}
        <h3><a href="{% url blog_blogpost_detail p.slug %}">{{p.title}}</a></h3>
        <p><strong>Published:</strong>
          {{p.publish_date|date:"m/d/Y"}}
          </p>
        <div class="content">
            {{p.content|safe}}
        </div>
    {% endfor %}
{% endblock %}


         List of Template Tags and Filters: https://docs.djangoproject.com/en/dev/ref/templates/builtins/
The admin
• Not a CMS
• Allows site admins to edit content
• Auto CRUD views for your models
• Easy to customize
• Optional. If you don’t like it you can write
  your own
Introduction Django
Admin List
Admin Edit Screen
The admin

• add django.contrib.admin to
  INSTALLED_APPS
• Uncomment admin import, discover, and url
  pattern from PROJECTS urls.py
• Create an admin.py file for each app you
  want to manage
Sample admin.py

from django.contrib import admin

class BlogPostAdmin(admin.ModelAdmin):
    list_display = ('title', 'publish_date', 'is_published')
    list_filter = ('is_published', 'publish_date')
    search_fields = ('title', 'content')

admin.site.register(BlogPost, BlogPostAdmin)
Other Stuff

• Forms
• Caching
• Testing
Resources
•   Official Django Tutorial
    https://docs.djangoproject.com/en/dev/intro/tutorial01/


•   Django Documentation
    https://docs.djangoproject.com/


•   The Django Book
    http://www.djangobook.com/


• Practical Django Projects
    https://docs.djangoproject.com/


• Pro Django
    http://prodjango.com/
Thank You

    Wade Austin
http://wadeaustin.com
    @k_wade_a

More Related Content

What's hot (20)

PPTX
Introduction to Django
Knoldus Inc.
 
PPTX
Angular interview questions
Goa App
 
PDF
Python Django tutorial | Getting Started With Django | Web Development With D...
Edureka!
 
PPTX
Angular Data Binding
Jennifer Estrada
 
PPTX
Building Next-Generation Web APIs with JSON-LD and Hydra
Markus Lanthaler
 
PDF
Introduction to django framework
Knoldus Inc.
 
PDF
Introduction to Drupal Basics
Juha Niemi
 
PDF
Introduction to Django REST Framework, an easy way to build REST framework in...
Zhe Li
 
ODP
Django for Beginners
Jason Davies
 
PPT
Css Ppt
Hema Prasanth
 
PDF
Introduction to django
Ilian Iliev
 
PPTX
Introduction to angular with a simple but complete project
Jadson Santos
 
PPTX
Introduction to Django Rest Framework
bangaloredjangousergroup
 
PPTX
Bootstrap 3
McSoftsis
 
PDF
Angular Directives
iFour Technolab Pvt. Ltd.
 
PPTX
Django Seminar
Yokesh Rana
 
PDF
Free django
Eugen Oskin
 
PPTX
Django
Sayeed Far Ooqui
 
PDF
Intro to Web Development Using Python and Django
Chariza Pladin
 
Introduction to Django
Knoldus Inc.
 
Angular interview questions
Goa App
 
Python Django tutorial | Getting Started With Django | Web Development With D...
Edureka!
 
Angular Data Binding
Jennifer Estrada
 
Building Next-Generation Web APIs with JSON-LD and Hydra
Markus Lanthaler
 
Introduction to django framework
Knoldus Inc.
 
Introduction to Drupal Basics
Juha Niemi
 
Introduction to Django REST Framework, an easy way to build REST framework in...
Zhe Li
 
Django for Beginners
Jason Davies
 
Css Ppt
Hema Prasanth
 
Introduction to django
Ilian Iliev
 
Introduction to angular with a simple but complete project
Jadson Santos
 
Introduction to Django Rest Framework
bangaloredjangousergroup
 
Bootstrap 3
McSoftsis
 
Angular Directives
iFour Technolab Pvt. Ltd.
 
Django Seminar
Yokesh Rana
 
Free django
Eugen Oskin
 
Intro to Web Development Using Python and Django
Chariza Pladin
 

Viewers also liked (7)

PDF
Gae Meets Django
fool2nd
 
KEY
DjangoCon recap
Jazkarta, Inc.
 
PDF
Pinax
DjangoCon2008
 
PPT
Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site
Shawn Rider
 
PDF
Plone in Higher Education
Jazkarta, Inc.
 
PDF
Agile Development with Plone
Jazkarta, Inc.
 
PDF
Gtd Intro
fool2nd
 
Gae Meets Django
fool2nd
 
DjangoCon recap
Jazkarta, Inc.
 
Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site
Shawn Rider
 
Plone in Higher Education
Jazkarta, Inc.
 
Agile Development with Plone
Jazkarta, Inc.
 
Gtd Intro
fool2nd
 
Ad

Similar to Introduction Django (20)

PPTX
Tango with django
Jaysinh Shukla
 
PDF
Introduction to Django
Joaquim Rocha
 
PDF
Django 1.10.3 Getting started
MoniaJ
 
PPTX
The Django Web Application Framework 2
fishwarter
 
PPTX
The Django Web Application Framework 2
fishwarter
 
PPTX
The Django Web Application Framework 2
fishwarter
 
PPTX
The Django Web Application Framework 2
fishwarter
 
PDF
Django workshop : let's make a blog
Pierre Sudron
 
PDF
GDG Addis - An Introduction to Django and App Engine
Yared Ayalew
 
PDF
django
webuploader
 
PPT
Mini Curso Django Ii Congresso Academico Ces
Leonardo Fernandes
 
PPTX
Django course
Nagi Annapureddy
 
PPTX
Why Django for Web Development
Morteza Zohoori Shoar
 
PDF
Mini Curso de Django
Felipe Queiroz
 
PDF
Django
Ivan Widodo
 
DOCX
Akash rajguru project report sem v
Akash Rajguru
 
PDF
Django a whirlwind tour
Brad Montgomery
 
PDF
Rapid web application development using django - Part (1)
Nishant Soni
 
PDF
Zagreb workshop
Lynn Root
 
KEY
Jumpstart Django
ryates
 
Tango with django
Jaysinh Shukla
 
Introduction to Django
Joaquim Rocha
 
Django 1.10.3 Getting started
MoniaJ
 
The Django Web Application Framework 2
fishwarter
 
The Django Web Application Framework 2
fishwarter
 
The Django Web Application Framework 2
fishwarter
 
The Django Web Application Framework 2
fishwarter
 
Django workshop : let's make a blog
Pierre Sudron
 
GDG Addis - An Introduction to Django and App Engine
Yared Ayalew
 
django
webuploader
 
Mini Curso Django Ii Congresso Academico Ces
Leonardo Fernandes
 
Django course
Nagi Annapureddy
 
Why Django for Web Development
Morteza Zohoori Shoar
 
Mini Curso de Django
Felipe Queiroz
 
Django
Ivan Widodo
 
Akash rajguru project report sem v
Akash Rajguru
 
Django a whirlwind tour
Brad Montgomery
 
Rapid web application development using django - Part (1)
Nishant Soni
 
Zagreb workshop
Lynn Root
 
Jumpstart Django
ryates
 
Ad

Recently uploaded (20)

PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 

Introduction Django

  • 1. Introduction to Django pyArkansas Wade Austin @k_wade_a
  • 2. What is Django? “Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.” www.djangoproject.com • Created out of the newspaper industry • Help developers build sites fast • Encourage Reuse and Lose Coupling • DRY (don’t repeat yourself) • Minimal Code • Opinionated
  • 3. Batteries Included django.contrib • Admin Interface for editing data. • Auth module for user accounts • Syndication module for generation of RSS • Static Pages
  • 4. Active Community • Many Community Contributed Apps • Pinax http://pinaxproject.com/ • Django Packages http://djangopackages.com/
  • 5. Django Projects • A project is your website. • Projects contain the configuration information for your site. • Create a project: django-admin.py startproject [PROJECT_NAME] • Projects contain 3 files: • settings.py - configuration information for your project • urls.py - URL routes defined by your project • manage.py - alias of django-admin.py tuned to your project
  • 6. Django Applications • Projects are built from Applications • Apps encapsulate some piece of functionality • blog, photo gallery, shopping cart, etc. • Apps can be reused • Apps are Python Packages • manage.py startapp [MY_APP_NAME]
  • 7. Django Application Components • Models - Your Data • Views - Rules for Accessing Data • Templates - Displays Data • URL Patterns - Maps URLs to Views
  • 8. Models • Describes the data in your apps • Defined in an app’s models.py file • Map Python Classes to Database Tables • Provides an API for creating, retrieving, changing and deleting data
  • 9. Blog Data Definition CREATE TABLE "blog_category" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(50) NOT NULL ); CREATE TABLE "blog_blogpost" ( "id" integer NOT NULL PRIMARY KEY, "title" varchar(100) NOT NULL, "slug" varchar(50) NOT NULL UNIQUE, "publish_date" datetime NOT NULL, "is_published" bool NOT NULL, "content" text NOT NULL, "category_id" integer NOT NULL REFERENCES "blog_category" ("id") );
  • 10. Django Hides the SQL • SQL is not consistent across databases • Difficult to store in version control
  • 11. Model Example from django.db import models from datetime import datetime class Category(models.Model): name = models.CharField(max_length=50) class BlogPost(models.Model): title = models.CharField(max_length=100) slug = models.SlugField(unique=True) publish_date = models.DateTimeField(default=datetime.now) is_published = models.BooleanField(default=False) content = models.TextField(blank=True) category = models.ForeignKey(Category, related_name=‘posts’)
  • 12. Creating your database • manage.py syncdb command creates tables from models • Creates all models for any app in your project’s INSTALLED_APPS setting
  • 13. Querying Models posts = BlogPost.objects.all() publshed_posts = BlogPost.objects.filter(is_published=True) news_posts = BlogPost.objects.filter(category__name = 'News') c = Category( name="News" ) c.save()
  • 14. Views • Business Logic • Perform a task and render output (HTML/JSON/XML) • Python function that takes an HttpRequest and returns an HttpResponse • Defined in an app’s views.py file
  • 15. Hello World View from django.http import HttpResponse def hello_world(request): return HttpResponse("Hello World")
  • 16. Latest Posts View from django.shortcuts import render from blog.models import BlogPost def get_latest_posts(request): today = datetime.datetime.now() posts = BlogPost.objects.filter(is_published=True). filter(publish_date__lte=today). order_by('-publish_date') return render( request, 'blog/latest_posts.html', {'posts':posts})
  • 17. Post Detail View from django.shortcuts import render, get_object_or_404 from blog.models import BlogPost def blog_post_detail(request, slug): post = get_object_or_404(BlogPost, slug=slug) return render( request, "blog/blogpost_detail.html", {"post":post})
  • 18. URL Routes • Defines the URLs used in your project • Maps a URL to a View Function • Defined using Regular Expressions • Defined in an app’s urls.py file.
  • 19. URL Example urlpatterns = patterns('', url(r'^latest_posts/$', 'blog.views.get_latest_posts', name='blog_blogpost_latest'), url(r'^post/(?P<slug>[-w]+)/$', 'blog.views.blog_post_detail', name='blog_blogpost_detail'), )
  • 20. Templates • Describes the Presentation of your data • Separates Logic from Presentation • Simple Syntax • Designer Friendly • Supports Reuse through inheritance and inclusion • Blocks allow child templates to insert content into parent templates
  • 21. Template Syntax • Variables: {{variable-name}} • Tags: Perform logic {% include “_form.html” %} • Filters: Operate on data {{post.publish_date|date:"m/d/Y"}}
  • 22. Template “base.html” <html> <head> <title>{% block title %}{% endblock %}My Site</title> <link rel="stylesheet" href="{{STATIC_URL}}css/screen.css" media="screen, projection"/> </head> <body> <h1>My test site</h1> {% block content %} {% endblock %} </body> </html>
  • 23. Template “latest_posts.html” {% extends "base.html" %} {% block title %}Latest Blog Posts - {% endblock %} {% block content %} <h2>Latest Blog Posts</h1> {% for p in posts %} <h3><a href="{% url blog_blogpost_detail p.slug %}">{{p.title}}</a></h3> <p><strong>Published:</strong> {{p.publish_date|date:"m/d/Y"}} </p> <div class="content"> {{p.content|safe}} </div> {% endfor %} {% endblock %} List of Template Tags and Filters: https://docs.djangoproject.com/en/dev/ref/templates/builtins/
  • 24. The admin • Not a CMS • Allows site admins to edit content • Auto CRUD views for your models • Easy to customize • Optional. If you don’t like it you can write your own
  • 28. The admin • add django.contrib.admin to INSTALLED_APPS • Uncomment admin import, discover, and url pattern from PROJECTS urls.py • Create an admin.py file for each app you want to manage
  • 29. Sample admin.py from django.contrib import admin class BlogPostAdmin(admin.ModelAdmin): list_display = ('title', 'publish_date', 'is_published') list_filter = ('is_published', 'publish_date') search_fields = ('title', 'content') admin.site.register(BlogPost, BlogPostAdmin)
  • 30. Other Stuff • Forms • Caching • Testing
  • 31. Resources • Official Django Tutorial https://docs.djangoproject.com/en/dev/intro/tutorial01/ • Django Documentation https://docs.djangoproject.com/ • The Django Book http://www.djangobook.com/ • Practical Django Projects https://docs.djangoproject.com/ • Pro Django http://prodjango.com/
  • 32. Thank You Wade Austin http://wadeaustin.com @k_wade_a

Editor's Notes

  • #2: Ask audience questions.\nWho knows Python?\nWho here has used Django?\nExperience building websites / web development?\nOther webdev frameworks?\n
  • #3: Framework created in 2005 at a newspaper Lawrence Kansas\nCreated out of a need to develop sites fast on a real-world news cycle\nTasked with creating sites at journalism deadline. Be able to launch sites is hours / days as opposed to weeks / months.\nDjango is Python, if you are learning Django you are learning Python.\n\nWhat is a web-framework? It makes routine development tasks easier by using shortcuts.\nExamples: Database CRUD, form processing, clean urls, etc.\nOpinionated about the right way to do things, makes doing things that way easier \nNot a CMS.\n
  • #4: \n
  • #5: \n
  • #6: Projects are your site\n
  • #7: Projects/Sites tend to have lots of applications\nApps are pieces of re-use.\nApps should be small, sites are made up of lots of apps\n
  • #8: \n
  • #9: Describes the types of data your apps have and what fields/attributes those types have\nModels map one-to-one to DB tables\nDB neutral. Hides SQL (unless you need it) SQLite for development, PostGres for production\nsyncdb installs all models listed in INSTALLED_APPS\n\n
  • #10: \n
  • #11: \n
  • #12: Fields for different data types\nCharField short string\nDateTime, Time, Date fields for date/time information\nTextField for larger text information\nBoolean, Integer, Float for example\nForeignKey, ManyToMany, OneToOne for relationships\n\nwell documented online\n
  • #13: \n
  • #14: Filters can be chained.\nQuery is not executed until the result is operated so calling filter multi times is not a penalty.\nFields to Query are escaped to prevent against SQL Injection\n
  • #15: A python function that accepts an HttpRequest and returns a HttpResponse\n
  • #16: \n
  • #17: View is a function (or any callable) accepts a HttpRequest object and returns a HttpResponse object\nQuerying BlogPost to get a list of posts that are marked as published and their publish date is not in the future.\nUses a Django shortcut function called render that takes a response, a template name, and dictionary of objects and returns\na response that renders the given template using the dictionary\n\n
  • #18: \n
  • #19: \n
  • #20: 2 URL patters 1 for the latest posts, 1 for post detail\npost detail uses a regex to capture a keyword argument to the view function (slug)\nThe name argument is a unique string to identify a url pattern. Usually named (appname_model_view) to keep from clashes\nUseful so you can reference a URL by its name not hardcode the URL. Decouples the url. allows you to change url and not break stuff\n
  • #21: Templates can inherit from base template for reuse and include sub templates (i.e. a common form template)\n
  • #22: \n
  • #23: Simple HTML layout\nblocks are where inherited templates can generate output\n2 Blocks: title (for page title) &amp; content (for body content)\n
  • #24: extends the base template\nAdds its base title as just text output\nIterates over each blog posts that was passed in from our view\nPrints out the title, the date formated, and the content|safe\nDjango escapes all HTML output in a template, must mark a field as &amp;#x201C;safe&amp;#x201D; before it is rendered.\n
  • #25: Admin is not a CMS. Not intended for end uses.\nUseful by site editors/admins to edit data of your models.\nProvides a quick interface for basic site information editing.\nFor many sites it is enough.\nCan be customized.\n
  • #26: \n
  • #27: List edit screen. \nsearch at the top, filters on the right\n
  • #28: \n
  • #29: \n
  • #30: Imports Django admin module\nCreates a simple class for the model we want to administer\nSimple things you can do in an admin class. Fields displayed on the list page, fields you can filter by in the admin, fields you can search on.\nMany more customizations listed in docs.\nRegisters that models with the admin class it belongs to\n
  • #31: \n
  • #32: \n
  • #33: \n