Django web框架-----Django templates模板

栏目: Python · 发布时间: 7年前

内容简介:实例一:显示一个基本的字符串到网页上quicktool/view.py文件修改视图函数index(),渲染一个home.html模板,在视图中传递一个字符串名称是 string 到模板 home.htmlquicktool(应用app)下创建一个templates文件夹(模板),在templates下创建一个home.html

说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用

一般的变量之类的用 {{ }}(变量),功能类的比如循环、条件判断是用 {% %}(标签)
复制代码

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

quicktool/view.py文件修改视图函数index(),渲染一个home.html模板,在视图中传递一个字符串名称是 string 到模板 home.html

def index(request):
    string = u'这是一个由Django2.1.7版本写出的视图内容!'
    return render(request, 'home.html',{'string':string})
复制代码

quicktool(应用app)下创建一个templates文件夹(模板),在templates下创建一个home.html

<!DOCTYPE html>
<html>
<head>
    <title>学习Django</title>
</head>
<body>

{{ string }}

</body>
</html>
复制代码

实例二:用for循环显示一个基本的List内容

quicktool/view.py文件修改视图函数index(),渲染一个home.html模板,在视图中传递一个List到模板home.html

def index(request):
    TutorialList = ["HTML", "CSS", "jQuery", "Python", "Django"]
    return render(request, 'home.html',{'TutorialList':TutorialList})
复制代码

quicktool(应用app)下创建一个templates文件夹(模板),在templates下创建一个home.html

<!DOCTYPE html>
<html>
<head>
    <title>学习Django</title>
</head>
<body>

语言类型列表:
{%  for i in TutorialList %}
{{ i }}
{% endfor %}
</body>
</html>
复制代码

实例三:显示字典中的内容

quicktool/view.py文件:

def index(request):
   info_dict = {'site': u'本地环境', 'content': u'Django技术'}
   return render(request, 'home.html', {'info_dict': info_dict})
复制代码

quicktool/templates/home.html文件:

开发环境:
{{ info_dict.site }}
学习内容:
{{ info_dict.content }}
复制代码

quicktool/templates/home.html文件(遍历字典):

{% for key, value in info_dict.items %}
    {{ key }}: {{ value }}
{% endfor %}
复制代码

实例四:进行条件判断和for 循环

quicktool/view.py文件:

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

quicktool/templates/home.html文件:

{% for item in List %}
    {{ item }}, 
{% endfor %}
复制代码

打印到页面的最后一个数字有逗号,使用forloop.last判断是否为最后一项,不是最后一项就加逗号,是最后一项就不加

{% for item in List %}
    {{ item }}{% if not forloop.last %},{% endif %} 
{% endfor %}
复制代码

forloop的一些变量

Django web框架-----Django templates模板

当列表中可能为空值时用for...empty...

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% empty %}
    <li>抱歉,列表为空</li>
{% endfor %}
</ul>
复制代码

实例五:逻辑操作

① ==, !=, >=, <=, >, < (注意:比较符号前后必须有至少一个空格!)

{% if var >= 90 %}
成绩优秀
{% elif var >= 80 %}
成绩良好
{% elif var >= 70 %}
成绩一般
{% elif var >= 60 %}
需要努力
{% else %}
不及格
{% endif %}
复制代码

②and, or, not, in, not in

# 判断 num 是不是在 0 到 100 之间:
{% if num <= 100 and num >= 0 %}
num在0到100之间
{% else %}
数值不在范围之内!
{% endif %}
复制代码

实例六:获取当前用户、当前网址、当前GET参数

①获取当前用户

{% if request.user.is_authenticated %}
    {{ request.user.username }},您好!
{% else %}
    请登陆,这里放登陆链接
{% endif %}
复制代码

②获取当前网址

{{ request.path }}
复制代码

③获取当前GET参数

{{ request.GET.urlencode }}
复制代码

合并到一起用的例子

<a href="{{ request.path }}?{{ request.GET.urlencode }}&delete=1">当前网址加参数 delete</a>
复制代码

网页上的这个a标签href=“/?&delete=1”,每点击一次标签a网页的地址新增参数?delete=1&delete=1...


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Approximation Algorithms

Approximation Algorithms

Vijay V. Vazirani / Springer / 2001-07-02 / USD 54.95

'This book covers the dominant theoretical approaches to the approximate solution of hard combinatorial optimization and enumeration problems. It contains elegant combinatorial theory, useful and inte......一起来看看 《Approximation Algorithms》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具