1.模板 - Templates
1.什么是模板
模板,在Flask中就是允许给用户看的网页,动静结合的
动:允许包含服务器端的动态内容,如:变量,标签,过滤器,
静:纯HTML,CSS以及JavaScript的内容 在Flask中,模板是依赖于Jinja2的模板引擎
Jinja官网:http://jinja.pocoo.org/
2.模板的设置
默认情况下,Flask会在程序的主文件夹中会搜索一个templates的目录来作为模板的存放位置 需要手动的在程序中创建一个 templates 目录,并将所有的模板文件(html)都存放进去
3.模板的渲染
作用:在视图中,将模板文件(**.html)先变成字符串,再响应给浏览器
语法:
from flask import render_template
return render_template('xxx.html')
4.模板中的语法(重点)
1.变量
变量是一种特殊的占位符,告诉模板引擎,该位置的值是从渲染模板时的哪个数据中获取出来的
语法:
1.在视图中
@app.route('/xxx')
def xxx():
return render_template('xxx.html',变量1=值1,变量2=值2,... ...) return render_template('01-template.html',name='wangwc',age=35)
2.在模板中
{{变量名}}
01-template.html 中:
{{name}}
练习:
创建 /03-template 路由,能够渲染 03-template.html模板,并在模板中输出以下内容:
歌名 : <<绿光>>
作词 : 宝强
作曲 : 乃亮
演唱 : 羽凡 允许传递到模板中作为变量的数据类型:
字符串,整数,小数,
列表,元组,字典
对象
2.过滤器
1.什么是过滤器
在变量输出前,允许修改变量的值,再进行输出
2.语法
{{变量|过滤器(参数)}} 常用过滤器:
过滤器名 说明
capitalize 首字符变大写,其他变小写
lower 将值转换为小写
upper 将值转换为大写
title 将值中的每个单词首字符变大写
trim 去掉值两端的空格
default('xx') 如果变量不存在,将采用default中的值作为默认输出
truncate(num[,bool]) 截取指定长度字符串,后面使用...显示
3.标签
1.什么是标签
在模板中,标签是属于服务器端内容
每个标签表示的是不同的服务器端的功能
2.常用标签
1. if 标签
1. 基本if标签
{% if 条件 %}
if条件为真的时候,要执行的内容
允许是 静态内容,也允许是动态内容
{% endif %}
2. if ... else 结构
{% if 条件 %}
...
{% else %}
...
{% endif %}
3. if ... elif ... elif 结构
{% if 条件1 %}
...
{% elif 条件2 %}
...
{% elif 条件3 %}
...
{% else %} -- 可选
...
{% endif %}
2. for 标签
{% for 变量 in 元组|列表|字典 %}
允许出现静态内容:html,css,js
允许出现动态内容:
变量 - {{}}
标签 - {% if %} {% endif %}
{% endfor %} 循环的内部变量 - loop
loop的作用:能够记载当前循环的一些相关信息
loop 常用属性:
1. index
作用:记录当前循环的次数,从1开始记录
2. index0
作用:同上,从0开始记录
3.first
作用:判断本次循环是否为第一次循环
值:True(是第一次循环) 或 False(非第一次循环)
4.last
作用:判断本次循环会否为最后一次循环
值:True(是最后一次循环) 或 False(非最后一次循环)
3. macro 标签 (宏)
1.作用
相当于是在模板中声明函数
2.语法
{% macro 名(参数列表) %}
xxx xxx
{% endmacro %}
3.在独立的模板文件中声明宏
1.创建 macro.html 模板文件
作用:定义项目中要用到的所有的宏
2.在使用的网页中,导入 macro.html 模板
{% import 'macro.html' as macros %}
4. include 标签
将其他的模板文件包含到当前的模板文件中
语法:{% include 'xxx.html' %}
5.静态文件的处理
1.什么是静态文件
在Flask中,不能与服务器做动态交互的文件称为静态文件
如:图片,css,js,音视频,文档... ...
2.静态文件的处理
1.所有的静态文件必须放在 static 目录中
static目录必须放在项目的根目录处
2.所有的静态文件必须通过 /static/ 路径进行访问
/static : 要到静态资源目录中进一步的搜索文件
http://localhost:5000/static/images/a.jpg 作业:
搭建Blog项目中的模板以及静态文件
在 Blog 项目的基础上,实现以下功能:
1.将所有的html页面导入到Blog项目中 -> templates
2.将所有的静态文件(css,js,图片)导入到Blog项目中 -> static
3.在模板中处理好所有的静态文件们
1.首页 - /
访问时,能够显示 index.html 中的内容
2.列表页 - /list
访问时,能够显示 list.html 中的内容
3.发布页 - /release
访问时,能够显示 release.html 中的内容
4.详情页 - /info/id
访问时,能够显示 info.html 中的内容
明天:
1.模板
模板继承
2.修改配置
3.请求(request) 和 响应(response) {
'game': <__main__.Game object at 0x7f6b23add898>,
'dic': {'WZJ': '王昭君', 'DJ': '妲己', 'AQL': '安其拉'},
'tup': ('蔡文姬', '名师因', '刘禅'),
'name': '王者荣耀',
'list': ['阿珂', '兰陵王', '孙悟空', '李白'],
'delay': 460
}
python中html模版 python html模板引擎
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章