从零开始搭建Python web框架——Django(二)

2018-03-01 07:51:25来源:作者:人点击

分享

Django模板↓

  1. 在上一篇建立的项目下的templates目录下新建模板文件hello.html,目录结构如下:
    HelloWorld/|-- HelloWorld|-- manage.py`-- templates `-- hello.html
     
  2. hello.html代码如下:
    {{hello}}
     
  3. 修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS :
    TEMPLATES = [ {'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR+"/templates"],'APP_DIRS': True,'OPTIONS': {'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages',],}, },]
     
  4. 修改 view.py,新建一个方法,绑定字典到模板中
    # -*- coding: utf-8 -*- #from django.http import HttpResponsefrom django.shortcuts import render def hello(request): context  = {} context['hello'] = 'Hello World!' return render(request, 'hello.html', context)
     
  5. 浏览器访问http://127.0.0.1:8000/hello,页面打印出了Hello World!

下面介绍Django模板的标签:

  1. if标签:
    {% if ... %}...{% elif ... %}...{% else %}...{% endif %}
     if的条件接受 and , or 或者 not 关键字。
  2. for标签:
    <ul>{% for v in list %} <li>{{ v }}</li>{% endfor %}</ul><ul>{% for v in list reversed %}{# 反向迭代 #} <li>{{ v }}</li>{% endfor %}</ul>
     
  3. ifequal/ifnotequal标签:
    {% ifequal value 'aaa' %} 如果value等于aaa,显示该部分{% else %} 不等于aaa{% endifequal %}
     
  4. 注释标签:
    {# 注释 #}
     
  5. include标签:
    {% include "nav.html" %}
     
  6. 过滤器:
    {# 转小写 #}{{ name|lower }}{# 输出第一个元素,并转大写 #}{{ my_list|first|upper }}{# 过滤器可以带参数,显示变量的前30个单词 #}{{ bio|truncatewords:"30" }}{# 格式化date对象 #}{{ pub_date|date:"F j, Y" }}{# 添加反斜杠到任何反斜杠、单引号或者双引号前面 #}{{ value|addslashes }}{# 返回变量的长度 #}{{ value|length }}
     
  7. 模板继承:
    <p>第一行,固定部分。</p> {% block main %} block 为被继承者替换的部分 {% endblock %}
     
    {% extends "base.html" %} {% block main %}已替换{% endblock %}
     最终结果为:
    第一行,固定部分。已替换
     

本章先写到这!

 

pythonDjangowebpython框架

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台