jinjia2 模板 python实现 flask 内置语言 参照Djago实现
设置模板文件夹
设置模板语言 jinja2
扫描二维码关注公众号,回复:
8234760 查看本文章
demo6_template.html ----> 从代码渲染值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 你有事情我帮忙 我住隔壁我姓王<br> {#取值#} {{ my_int}} {{ my_list}} </body> </html>
demo6_template.py ------> render_templete("demo6_template.html", 传入渲染值 )
from flask import Flask, request, render_template app = Flask(__name__) # 展示模板渲染 @app.route("/") def demo1(): my_str = "12345" my_int = 10 my_list = ["a", "b", "c", "d"] return render_template('demo6_template.html', my_str=my_str, my_int=my_int, my_list=my_list) if __name__ == '__main__': app.run(debug=True,port=2222)
过滤器
{{itheima | upper}}
from flask import Flask, request, render_template app = Flask(__name__) # 展示模板渲染 @app.route("/") def demo1(): my_str = "12345" my_int = 10 my_list = ["a", "b", "c", "d"] my_dict = [ {"username":"白菜", "price": 20 }, { "username": "萝卜", "price": 30 } ] return render_template('demo6_template.html', my_str=my_str, my_int=my_int, my_list=my_list, my_dict=my_dict ) # 自定义过滤器 本质上python函数 # 装饰器 反转 # 过滤器名称 # 方式一 @app.template_filter("listreverse") def do_listreverse(li): temp = list(li) temp.reverse() return temp # 方式二 直接添加过滤器 # app.add_template_filter(do_listreverse,"listreverse") if __name__ == '__main__': app.run(debug=True,port=2222)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 你有事情我帮忙 我住隔壁我姓王<br> {#取值#} {{ my_int}} {{ my_list}} {#大写#} {{ 'itheima' | upper}} {#小写#} {{ 'ITHEIMA' | lower }} {#反转#} {{ 'THEIMA' | reverse }} {#反转小写#} {{ 'ITHEIMA' | reverse | lower }} {#默认html字符串按照原样子显示 如果标识safe 就会按照html语言格式 进行执行 相反 escape#} {{ my_list | safe }} {#传参数 求和 #} {{ my_dict | sum(attribute='price') }} {#列表反转#} <br> {{ my_list | listreverse }} <br> {{ my_list }} </body> </html>
循环遍历
{% for item in my_list if my_list.id != 5 %}
{% if loop.index == 1%}
<li>item.value<li>
{% endif %}
{% endfor %}
for.py
for.html
未完待续
代码复用
macro 宏
# 定义所有宏文件