python测试开发django(5)--模板templates

前言

html是一个静态的语言,里面没法传一些动态参数,也就是一个写死的html页面。如果想实现在一个固定的html样式,传入不同的参数,这就可以用django的模板传参来解决。

模板参数

先在xjyn应用下新建一个templates文件夹,层级目录如下

python测试开发django(5)--模板templates

 

 新建一个a.html文件,xjyn/templates/a.html文件内容如下,模板变量用{{变量名称}}来表示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>武汉-会</title>

</head>
<body>
<p>
    欢迎{{name}}同学学习django!
    <br>
</p>
</body>
</html>

 在settings.py脚本里面添加模板的路径,修改TEMPLATES中的DIRS为

[BASE_DIR+"/xjyn/templates"]

 BASE_DIR的值前面已经定义为当前脚本的路径:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

 视图与url

xjyn/views写个视图函数,内容如下

from django.shortcuts import render
from django.http import HttpResponse,Http404
# Create your views here.

def he(request):
    context={}
    context['name']='会会'
    return render(request,"a.html",context)

 xjyn/urls.py添加访问路径

#helloworld/helloworld/urls.py
from django.conf.urls import url
from django.urls import re_path,path
from xjyn import views

urlpatterns=[
  url('^hui$',views.he),
]

 接着在浏览器输入地址:http://127.0.0.1:8000/hui 就能访问了

python测试开发django(5)--模板templates

 

 Django模板标签

if/else标签

条件判断if语句,最后endif结束

{% if condition1 %}
   ... display 1
{% elif condition2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}

 for标签

与Python的for语句的情形类似,循环语法是for X in Y,Y是要迭代的序列而X是在每一个特定的循环中使用的变量名称。

每一次循环中,模板系统会渲染在{% for %}和{% endfor %}之间的所有内容。

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>

 ifequal/ifnotequal 标签

{% ifequal %} 标签比较两个值,当他们相等时,显示在{% ifequal %}和{% endifequal %}之中所有的值。

下面的例子比较两个模板变量user 和 currentuser:

{% ifequal user currentuser %}
    <h1>Welcome!</h1>
{% endifequal %}  

 和{% if %}类似,{% ifequal %}支持可选的{% else %}标签

{% ifequal section 'sitenews' %}
    <h1>Site News</h1>
{% else %}
    <h1>No News Here</h1>
{% endifequal %}

 注释标签

Django 注释使用{# #}

{# 这是一个注释 #}

  

上一篇:python-找不到Django的TEMPLATE_DIRS


下一篇:1.创建代码模板