1、django-admin startproject xx python manage.py runserver xxxx:xx import django.http import HttpResponse return HttpResponse('hello world') from my.views import * 2 settings.py ROOT_URLCONF='mysite.urls' === mysite/urls.py //datetime.datetime.now() 通配符:/d{1,2}/$,xx 3 引发404错误 imort django.http import Http404 raise Http404() 4 捕获url传参 from django.conf.urls.defaults import * from mysite.views import hello, current_datetime, hours_ahead
def hours_ahead(request, offset): try: offset = int(offset) except ValueError: raise Http404() dt = datetime.datetime.now() datetime.timedelta(hours=offset) html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt) return HttpResponse(html) 5、视图 {{ }} {% for xx in xxx%}{% endfor %} {% if %}{% endfor%} {{datehe|date:"F j,y"}} 格式化 6 template视图用法
from django import template t = template.Template('My name is {{ name }}.') c = template.Context({'name': 'Adrian'}) print t.render(c) My name is Adrian. c = template.Context({'name': 'Fred'}) print t.render(c) My name is Fred. 7 template 中引用对象的方法、属性等都是. obj.property obj.func 但是方法只能调用空函数,无法调用带参数的方法 8 template里的False和以下对象等价,空列表也是False 空列表([] ) 空元组(() ) 空字典({} ) 空字符串('' ) 零值(0 ) 特殊对象None 对象False(很明显) 9 {%%}中不能使用() 10 {% empty %}循环中,如果值为空是显示其他内容 {% for athlete in athlete_list %} <p>{{ athlete.name }}</p> {% empty %} <p>There are no athletes. Only computer programmers.</p> {% endfor %} 11 {{ forloop.counter }}循环中的计数器:不过是从1开始 {% for item in todo_list %} <p>{{ forloop.counter }}: {{ item }}</p> {% endfor %} forloop.first////forloop.last // forloop.counter0 循环计数器,但是是从0开始计数的 forloop.revcounter 循环计数器,剩余项的计数 forloop.revcounter0 forloop.first 是否第一项 {% if forloop.first %}<li class="first">{% else %}<li>{% endif %} forloop.last 是否最后一项 {% for p in places %}{{ p }}{% if not forloop.last %}, {% endif %}{% endfor %} 12 {% ifequal %}{% endequal %}判断是否相等 {% ifequal user currentuser %} <h1>Welcome!</h1> {% endifequal %} 13 注释:{# #} 多行注释:{% comment %}sfldjslfjsldjflk{% endcomment %} 14 过滤器:truncatewords:"30" 前30个字符 {{ bio|truncatewords:"30" }} 15 settings.py中设置模版路径 TEMPLATE_DIRS = ( '/home/django/mysite/templates', t = template.Template('My name is {{ name }}.') >>> c = template.Context({'name': 'Adrian'}) >>> print t.render(c) My name is Adrian. >>> c = template.Context({'name': 'Fred'}) >>> print t.render(c) My name is Fred. 7 template 中引用对象的方法、属性等都是. obj.property obj.func 但是方法只能调用空函数,无法调用带参数的方法 8 template里的False和以下对象等价,空列表也是False 空列表([] ) 空元组(() ) 空字典({} ) 空字符串('' ) 零值(0 ) 特殊对象None 对象False(很明显) 9 {%%}中不能使用() 10 {% empty %}循环中,如果值为空是显示其他内容 {% for athlete in athlete_list %} <p>{{ athlete.name }}</p> {% empty %} <p>There are no athletes. Only computer programmers.</p> {% endfor %} 11 {{ forloop.counter }}循环中的计数器:不过是从1开始 {% for item in todo_list %} <p>{{ forloop.counter }}: {{ item }}</p> {% endfor %} forloop.first////forloop.last // forloop.counter0 循环计数器,但是是从0开始计数的 forloop.revcounter 循环计数器,剩余项的计数 forloop.revcounter0 forloop.first 是否第一项 {% if forloop.first %}<li class="first">{% else %}<li>{% endif %} forloop.last 是否最后一项 {% for p in places %}{{ p }}{% if not forloop.last %}, {% endif %}{% endfor %} 12 {% ifequal %}{% endequal %}判断是否相等 {% ifequal user currentuser %} <h1>Welcome!</h1> {% endifequal %} 13 注释:{# #} 多行注释:{% comment %}sfldjslfjsldjflk{% endcomment %} 14 过滤器:truncatewords:"30" 前30个字符 {{ bio|truncatewords:"30" }} 15 settings.py中设置模版路径 TEMPLATE_DIRS = ( '/home/django/mysite/templates', ) t = template.Template('My name is {{ name }}.') >>> c = template.Context({'name': 'Adrian'}) >>> print t.render(c) My name is Adrian. >>> c = template.Context({'name': 'Fred'}) >>> print t.render(c) My name is Fred. 7 template 中引用对象的方法、属性等都是. obj.property obj.func 但是方法只能调用空函数,无法调用带参数的方法 8 template里的False和以下对象等价,空列表也是False 空列表([] ) 空元组(() ) 空字典({} ) 空字符串('' ) 零值(0 ) 特殊对象None 对象False(很明显) 9 {%%}中不能使用() 10 {% empty %}循环中,如果值为空是显示其他内容 {% for athlete in athlete_list %} <p>{{ athlete.name }}</p> {% empty %} <p>There are no athletes. Only computer programmers.</p> {% endfor %} 11 {{ forloop.counter }}循环中的计数器:不过是从1开始 {% for item in todo_list %} <p>{{ forloop.counter }}: {{ item }}</p> {% endfor %} forloop.first////forloop.last // forloop.counter0 循环计数器,但是是从0开始计数的 forloop.revcounter 循环计数器,剩余项的计数 forloop.revcounter0 forloop.first 是否第一项 {% if forloop.first %}<li class="first">{% else %}<li>{% endif %} forloop.last 是否最后一项 {% for p in places %}{{ p }}{% if not forloop.last %}, {% endif %}{% endfor %} 12 {% ifequal %}{% endequal %}判断是否相等 {% ifequal user currentuser %} <h1>Welcome!</h1> {% endifequal %} 13 注释:{# #} 多行注释:{% comment %}sfldjslfjsldjflk{% endcomment %} 14 过滤器:truncatewords:"30" 前30个字符 {{ bio|truncatewords:"30" }} 15 settings.py中设置模版路径 TEMPLATE_DIRS = ( '/home/django/mysite/templates', ) 16 render_to_response("xx.html",{"xx":xx,"yy":yy}) c = template.Context({'name': 'Adrian'}) >>> print t.render(c) My name is Adrian. >>> c = template.Context({'name': 'Fred'}) >>> print t.render(c) My name is Fred. 7 template 中引用对象的方法、属性等都是. obj.property obj.func 但是方法只能调用空函数,无法调用带参数的方法 8 template里的False和以下对象等价,空列表也是False 空列表([] ) 空元组(() ) 空字典({} ) 空字符串('' ) 零值(0 ) 特殊对象None 对象False(很明显) 9 {%%}中不能使用() 10 {% empty %}循环中,如果值为空是显示其他内容 {% for athlete in athlete_list %} <p>{{ athlete.name }}</p> {% empty %} <p>There are no athletes. Only computer programmers.</p> {% endfor %} 11 {{ forloop.counter }}循环中的计数器:不过是从1开始 {% for item in todo_list %} <p>{{ forloop.counter }}: {{ item }}</p> {% endfor %} forloop.first////forloop.last // forloop.counter0 循环计数器,但是是从0开始计数的 forloop.revcounter 循环计数器,剩余项的计数 forloop.revcounter0 forloop.first 是否第一项 {% if forloop.first %}<li class="first">{% else %}<li>{% endif %} forloop.last 是否最后一项 {% for p in places %}{{ p }}{% if not forloop.last %}, {% endif %}{% endfor %} 12 {% ifequal %}{% endequal %}判断是否相等 {% ifequal user currentuser %} <h1>Welcome!</h1> {% endifequal %} 13 注释:{# #} 多行注释:{% comment %}sfldjslfjsldjflk{% endcomment %} 14 过滤器:truncatewords:"30" 前30个字符 {{ bio|truncatewords:"30" }} 15 settings.py中设置模版路径 TEMPLATE_DIRS = ( '/home/django/mysite/templates', ) 16 render_to_response("xx.html",{"xx":xx,"yy":yy}) from django.shortcuts import render_to_response import datetime
def current_datetime(request): now = datetime.datetime.now() return render_to_response('current_datetime.html', {'current_date': now}) 17 locals() def current_datetime(request): current_date = datetime.datetime.now() return render_to_response('current_datetime.html', locals()) 18 {% include %} {% include 'nav.html' %} {% include "nav.html" %} <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="en"> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <h1>My helpful timestamp site</h1> {% block content %}{% endblock %} {% block footer %}
<p>Thanks for visiting my site.</p>
{% endblock %}
</body>
{% extends "base.html" %}
{% block title %}The current time{% endblock %}
{% block content %} <p>It is now {{ current_date }}.</p> {% endblock %}
extends {% block xx%}{% endblock %}