一 模板的执行

模板的创建过程,对于模板,其实就是读取模板(其中嵌套着模板的标签),然后将Model中获取的数据插入到模板中,最后将信息返回给用户

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)
直接放在views里

二 模板语言

2.1 变量 

只需要记两种特殊符号

{{    }}   变量相关      {%  %}  逻辑相关

示例一:显示一个基本的字符串在网页上

views.py

def text_str(resquest):
    str = '我在学习Django'
    return render(resquest, 'home.html', {'str': str})

home.html

{{ str }}

 

2.2 Django模板中的for循环标签

 

示例二(1):基本的for循环和list的内容

views.py

def text_list(resquest):
    list=['HTML','CSS','jquery','MySQL','python','Django']
    return render(resquest, 'home.html', {'list': list})

home.html 

{{ list }}                  得到一个列表
=================================================
{% for i in list %}
{{ i }}                     得到具体的值
{% endfor %}

示例二(2):dict的内容

views.py

def text_dic(resquest):
    dic={1:'HTML',2:'CSS'}
    return render(resquest, 'home.html', {'dic':dic})

home.html  

{{ dic.1 }} ---------- dic.key

在模板中取字典的键用 dic.1    而不是Python中的 dic['1']  

还可以这样遍历字典:

{% for key,value in dic.items %}
    {{ key }}:{{ value }}
{% endfor %}

其实就是在遍历这样一个list:[(1,'HTML')(2,'CSS')]  

示例三 在模板进行 条件判断和for循环的详细操作

views.py 

def text_for(request):
    List = map(str, range(100))# 一个长度为100的 List
    return render(request, 'home.html', {'List': List})

home.html

不加任何符号

{% for item in List %}
    {{ item }}
{% endfor %}

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

结果