Django_templates

html里面有模板语法的文件就叫做模板(模板:html + 模板语法)

官方文档:https://docs.djangoproject.com/zh-hans/2.2/ref/templates/builtins/

模板语法

一、模板语法之变量:语法为 {{变量名}}

    1)变量名由数字和下划线组成

    2)点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值

    3)templates引擎遇到(.)的时候,会按照如下顺序查找

        字典查找,例如:foo['bar']

        属性查找,例如:foo.bar

        方法查找,例如:foo.bar()

        list-index查找,例如:foo[bar]

 

二、模板语法之标签:语法为 {%模板标签%}

    1.for 标签

       1)正向迭代:

           {% for 元素 in 可迭代对象 %}    {{元素}}    {% endfor %}

           {% for 元素 in 可迭代对象 %}    {{元素.属性}}    {% endfor %}

       2)反向迭代

           {% for 元素 in 可迭代对象 reversed%}    {{元素.属性}}    {% endfor %}

       3)对二元组解包

           {% for x,y in points %}    <p>There is a point at {{x}},{{y}}</p>     {% endfor %}

       4)字典解包

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

       5)判断列表是否为空(相当于组合使用if和for标签,empty即表示如果为空时则执行xxx)

           {% for 元素 in 可迭代对象 %}    <p>{{元素.属性}}</p>    {% empty %}    <p>空元素</p>    {% endfor %}

       6)for标签内部模板变量forloop

           {% for item in 可迭代对象 %}

               {{forloop.counter}}    <!--默认从1开始计数-->

               {{forloop.counter0}    <!--表示从0开始计数-->

               {{forloop.recounter}    <!--反向下标值,从1开始计数-->

               {{forloop.recounter0}}    <!--反向下标值,从0开始计数-->

               {{forloop.first}}:{{item}}    <!--#判断是否是第一个元素-->

               {{forloop.last}}:{{item}}    <!--#判断是否是最后一个元素-->

           {% endfor %}

    2.if 标签

        {% if 条件表达式1 %}    {% elif 条件表达式2 %}    {% else %}    {% endif %}

    3.ifequal / ifnotequal  标签

       {% ifequal %}{% else 变量 %}{% endifequal %}

    4.常用标签

       autoescape:某块内容不需要自动转义。如果块内某些地方需要转义的话,可以调用filter

       block:定义一个块,该块能够被继承他的子孙模板重写

       comment:模板系统会忽略该标签内部的所有内容

       cycle:在循环时轮流使用给定的字符串列表中的值

       extends:表示本模板要对指定的父模板进行扩展

       filter:将filter标签圈定的内容执行过滤器操作

       ifchanged:检测本次循环的值和上一次循环的值一样不一样,只能用在循环里面

       include:将另外一个模板文件中的内容添加到该文件中。注意区别extend是继承。

       now:时间

       spaceless:删除包围内容中的所有tab或者回车字符

       with:当一个变量的访问消耗很大的模板解析时,可以用另外一个变量替换它,这种替换只有在with内部有效

 

三、csrf_token

这个标签用于跨站请求伪造保护。在页面的form表单里面写上{% csrf_token %}

 

四、过滤器:通过过滤器可以改变变量的显示方式,过滤器的形式是:{{ variable | filter }},管道符号'|'代表使用过滤器。

例如(表示当value为空或None时就会显示nothing):{{value | default:"nothing"}}

常用内建过滤器

add:value值增加xxx

addslashes:在value中引号(单引号和双引号)前增加反斜线

capfirst:value的第一个字符转化成大写形式

cut:移出value中包含xxx的字符串

date:将日期格式数据按照给定的格式输出

default:如果value的意义是False,那么输出使用缺省值

default_if_none:如果value是None,那么输出将使用缺省值

dictsort:如果value的值是一个字典,那么返回值是按照关键字排序的结果

dictsortreversed:如果value的值是一个字典,那么返回值是按照关键字排序的结果的反序

divisibleby:如果value能够被xxx整除,那么返回值将是True

escape:替换value中的某些字符,以适应HTML格式

escapejs:替换value中的某些字符,以适应JavaScript和Json格式

filesizeformat:格式化value,使其成为易读的文件大小

first:返回列表中的第一个Item

floatformat:返回四舍五入后的小数

get_digit:根据角标,返回请求的数字

iriencode:如果value中有非ASCII字符,那么将其进行转化成URL中适合的编码,如果value已经进行过URLENCODE,该操作就不会再起作用

join:使用指定的字符串连接一个list,作用如同python的str.join(list)

 last:返回列表中的最后一个Item

length:返回value的长度

length_is:返回True,如果value的长度等于xxx的时候

linebreaks:value中的"\n"将被替代

linebreaksbr:value中的"\n"将被<br/>替代

linenumbers:显示的文本,带有行数

ljust:在一个给定宽度的字段中,左对齐显示value

center:在一个给定宽度的字段中,中心对齐显示value

rjust:在一个给定宽度的字段中,右对齐显示value

lower:将一个字符串转换成小写形式

make_list:将value转换成一个list,对于字符串,转换成字符list;对于整数,转换成整数list

pluralize:如果value不是1,则返回一个复数后缀,缺省的后缀是's'

random:从给定的list中返回一个任意的Item

removetags:删除value中xxx,xxx....的标签

safe:当系统设置autoescaping打开的时候,该过滤器使得输出不进行escape转换

safeseq :与上述safe基本相同,但有一点不同的就是:safe是针对字符串,而safeseq是针对多个字符串组成的sequence

slice:与python语法中的slice相同,:2表示第一的第二个元素

slugify:将value转换成小写形式,同事删除所有分单词字符,并将空格变成横线

striptags:删除value中的所有HTML标签

time:格式化时间输出,如果time后面没有格式化参数,那么输出按照TIME_FORMAT中设置的进行

title:转换一个字符串成为title格式(单词首字母大写)

truncatewords:将value切成truncatewords指定的单词数目

truncatewords_html:truncation点之前如果某个标签打开了,但是没有关闭,那么在truncation点会立即关闭。 因为这个操作的效率比truncatewords低,所有只有在value是html格式时,才考虑使用

upper:转换一个字符串为大写形式

urlencode:将一个字符串中的URL转化成可点击的形式

urlizetrunc:与upper相同,但是有一点不同就是现实的链接字符会被truncate成特定的长度,后面以...现实

wordcount:按照指定的长度包装字符串

timesince:返回参数xxx到value的天数和小时数

timeuntil:与wordcount基本相同,一个不同点就是,返回的是value距离当前日期的天数和小时数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Django一个流行的 Web 框架,可以用于快速开发高质量的 Web 应用程序。在 Django 中,一个应用程序可以由多个模块组成,并且可以轻松地与其他应用程序集成。在这里,我将为您提供一些建议和指导,以帮助您开始使用 Django 构建学生管理系统。 1. 安装 Django: 首先,你需要安装 Django。你可以通过 pip 命令安装 Django,例如:`pip install django` 2. 创建一个 Django 项目: 接下来,你需要创建一个 Django 项目。你可以运行以下命令来创建一个名为 myproject 的新项目:`django-admin startproject myproject` 3. 创建一个 Django 应用程序: 接下来,你需要创建一个名为 students 的新应用程序。你可以运行以下命令:`python manage.py startapp students` 4. 配置数据库: Django 默认使用 SQLite 数据库。如果你想使用其他数据库(如 MySQL 或 PostgreSQL),你需要修改 myproject/settings.py 文件中的 DATABASES 设置。 5. 创建模型: 在 Django 中,模型是与数据库表对应的 Python 类。你需要在 students/models.py 文件中创建一个名为 Student 的模型,包括学生的姓名、年龄和成绩。 6. 进行数据库迁移: 在创建模型后,你需要运行以下命令来将模型同步到数据库中:`python manage.py makemigrations students`,然后运行 `python manage.py migrate` 命令进行数据库迁移。 7. 创建视图: 视图是 Django 应用程序中处理请求和生成响应的代码。你需要在 students/views.py 文件中创建一个名为 student_list 的视图,用于显示所有学生的列表。 8. 创建 URL: URL 是 Django 应用程序中的网址,它将请求路由到正确的视图。你需要在 students/urls.py 文件中创建一个 URL 模式,将 student_list 视图与 URL 路径关联起来。 9. 创建模板: 模板是 Django 中的 HTML 文件,用于呈现视图。你需要在 students/templates/students 目录中创建一个名为 student_list.html 的模板,用于显示学生列表。 10. 运行服务器: 最后,你可以运行以下命令来启动 Django 服务器:`python manage.py runserver` 这只是一个基本的概述,但它应该帮助你开始使用 Django 构建学生管理系统。如果你需要更详细的指导,请参考 Django 官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值