前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python测试开发django-5.模板templates

python测试开发django-5.模板templates

作者头像
上海-悠悠
发布2018-12-13 11:27:48
5650
发布2018-12-13 11:27:48
举报

前言

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

《玩转Django2.0》是最近出版的,语法比较新,基础部分很详细,初学者值得入手!

模板参数

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

代码语言:javascript
复制
└─helloworld
    │  db.sqlite3
    │  manage.py
    │  __init__.py
    │      
    ├─hello
    │  │  admin.py
    │  │  apps.py
    │  │  models.py
    │  │  tests.py
    │  │  views.py
    │  │  __init__.py
    │  │  
    │  ├─migrations
    │  │  │  __init__.py
    │  │          
    │  ├─templates
    │  │      yoyo.html
    │  │      __init__.py
    │          
    └─helloworld
        │  settings.py
        │  urls.py
        │  wsgi.py
        │  __init__.py

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

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上海-悠悠</title>
</head>
<body>

<h1>hello world! {{name}}同学</h1>

</body>
</html>

在settings.py脚本里面添加模板的路径,修改TEMPLATES 中的 DIRS 为[BASE_DIR+"/hello/templates",] BASEDIR的值前面已经定义为当前脚本的路径:`os.path.dirname(os.path.dirname(os.path.abspath(_file)))`

代码语言:javascript
复制
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR+"/hello/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',
            ],
        },
    },
]

视图与url

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

代码语言:javascript
复制
from django.http import HttpResponse, Http404

# Create your views here.

def yoyo(request):
    context = {}
    context['name'] = '悠悠'
    return render(request, 'yoyo.html', context)

helloworld/urls.py添加访问路径

代码语言:javascript
复制
from django.conf.urls import url
from django.urls import re_path, path
from hello import views
urlpatterns = [

    path("yoyo/", views.yoyo),
]

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

Django 模板标签

if/else 标签

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

代码语言:javascript
复制
{% if condition1 %}
   ... display 1
{% elif condition2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}

for 标签

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

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

代码语言:javascript
复制
<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>

ifequal/ifnotequal 标签

{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。 下面的例子比较两个模板变量 user 和 currentuser :

代码语言:javascript
复制
{% ifequal user currentuser %}
    <h1>Welcome!</h1>
{% endifequal %}

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

代码语言:javascript
复制
{% ifequal section 'sitenews' %}
    <h1>Site News</h1>
{% else %}
    <h1>No News Here</h1>
{% endifequal %}

注释标签

Django 注释使用 {# #}。

代码语言:javascript
复制
{# 这是一个注释 #}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 模板参数
  • 视图与url
  • Django 模板标签
    • if/else 标签
      • for 标签
        • ifequal/ifnotequal 标签
          • 注释标签
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档