Django2.0 中文(urls\html模版)

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

urlpatterns = patterns('',
(r'^hello/', current_datetime),
(r'^time/plus/(\d{1,2})/$', hours_ahead),
)
从url中的正则捕获的参数来作为view中方法的offset参数
from django.http import Http404, HttpResponse
import datetime

def hours_ahead(request, offset):
try:
offset = int(offset)
except ValueError:
raise Http404()
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
html = "In %s hour(s), it will be %s." % (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 %}

{{ athlete.name }}


{% empty %}

There are no athletes. Only computer programmers.


{% endfor %}
11 {{ forloop.counter }}循环中的计数器:不过是从1开始
{% for item in todo_list %}

{{ forloop.counter }}: {{ item }}


{% endfor %}
forloop.first////forloop.last
//
forloop.counter0 循环计数器,但是是从0开始计数的
forloop.revcounter 循环计数器,剩余项的计数
forloop.revcounter0
forloop.first 是否第一项
{% if forloop.first %}
  • {% else %}
  • {% endif %}
    forloop.last 是否最后一项
    {% for p in places %}{{ p }}{% if not forloop.last %}, {% endif %}{% endfor %}
    12 {% ifequal %}{% endequal %}判断是否相等
    {% ifequal user currentuser %}

    Welcome!


    {% 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 %}

    {{ athlete.name }}


    {% empty %}

    There are no athletes. Only computer programmers.


    {% endfor %}
    11 {{ forloop.counter }}循环中的计数器:不过是从1开始
    {% for item in todo_list %}

    {{ forloop.counter }}: {{ item }}


    {% endfor %}
    forloop.first////forloop.last
    //
    forloop.counter0 循环计数器,但是是从0开始计数的
    forloop.revcounter 循环计数器,剩余项的计数
    forloop.revcounter0
    forloop.first 是否第一项
    {% if forloop.first %}
  • {% else %}
  • {% endif %}
    forloop.last 是否最后一项
    {% for p in places %}{{ p }}{% if not forloop.last %}, {% endif %}{% endfor %}
    12 {% ifequal %}{% endequal %}判断是否相等
    {% ifequal user currentuser %}

    Welcome!


    {% 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 %}

    {{ athlete.name }}


    {% empty %}

    There are no athletes. Only computer programmers.


    {% endfor %}
    11 {{ forloop.counter }}循环中的计数器:不过是从1开始
    {% for item in todo_list %}

    {{ forloop.counter }}: {{ item }}


    {% endfor %}
    forloop.first////forloop.last
    //
    forloop.counter0 循环计数器,但是是从0开始计数的
    forloop.revcounter 循环计数器,剩余项的计数
    forloop.revcounter0
    forloop.first 是否第一项
    {% if forloop.first %}
  • {% else %}
  • {% endif %}
    forloop.last 是否最后一项
    {% for p in places %}{{ p }}{% if not forloop.last %}, {% endif %}{% endfor %}
    12 {% ifequal %}{% endequal %}判断是否相等
    {% ifequal user currentuser %}

    Welcome!


    {% 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 %}

    {{ athlete.name }}


    {% empty %}

    There are no athletes. Only computer programmers.


    {% endfor %}
    11 {{ forloop.counter }}循环中的计数器:不过是从1开始
    {% for item in todo_list %}

    {{ forloop.counter }}: {{ item }}


    {% endfor %}
    forloop.first////forloop.last
    //
    forloop.counter0 循环计数器,但是是从0开始计数的
    forloop.revcounter 循环计数器,剩余项的计数
    forloop.revcounter0
    forloop.first 是否第一项
    {% if forloop.first %}
  • {% else %}
  • {% endif %}
    forloop.last 是否最后一项
    {% for p in places %}{{ p }}{% if not forloop.last %}, {% endif %}{% endfor %}
    12 {% ifequal %}{% endequal %}判断是否相等
    {% ifequal user currentuser %}

    Welcome!


    {% 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" %}



    {% block title %}{% endblock %}


    My helpful timestamp site


    {% block content %}{% endblock %}
    {% block footer %}



    Thanks for visiting my site.


    {% endblock %}

    {% extends "base.html" %}

    {% block title %}The current time{% endblock %}

    {% block content %}

    It is now {{ current_date }}.


    {% endblock %}

    extends
    {% block xx%}{% endblock %}

    你可能感兴趣的:(Django2.0 中文(urls\html模版))