flask中基础模板templates
1.新建manage.py文件
from flask import Flask, render_template, render_template_string, g
from flask_script import Manager
app = Flask(__name__)
# 配置自动加载模板文件,调试模式下会自动开启
app.config['TEMPLATES_AUTO_RELOAD'] = True
manager = Manager(app)
@app.route('/')
def index():
# return '模板引擎'
# 渲染模板文件
return render_template('index.html')
# 渲染模板字符串
# return render_template_string('<h1>渲染模板字符串</h1>')
# 使用变量
@app.route('/var/')
def var():
# g是一个全局的对象,该变量不要分配就可以在模板中使用
# 在一次请求上下文中保持不变
g.name = 'xxx'
# return render_template('var.html', name='goudan')
return render_template_string('<h1>Hello {{g.name}}</h1>')
# 使用过滤器
@app.route('/filter/')
def filter():
return render_template('filter.html', name='xiaoming', user='<b>user</b>')
# 流程控制
@app.route('/ctrl/')
def ctrl():
return render_template('ctrl.html', name='lucy')
# 文件包含
@app.route('/include/')
def include():
return render_template('include1.html')
# 宏的使用
@app.route('/macro/')
def macro():
# return render_template('macro.html', name='dahua')
return render_template('macro1.html', name='dahua')
# 模板继承
@app.route('/extends/')
def extends():
return render_template('children.html')
if __name__ == '__main__':
manager.run()
2.各个模板文件
index.html
<h1>模板文件渲染</h1>
var.html
{# 注释:变量应该放在两个大括号中 #}
<h1>hello {{ name }}</h1>
<h1>hello {{ g.name }}</h1>
ctrl.html
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello World!</h1>
{% endif %}
<ol>
{% for i in range(5) %}
<li>{{ i }}</li>
{% endfor %}
</ol>
fliter.html
<h1>Hello {{ name | upper }}</h1>
{# 过滤HTML标签 #}
<div>{{ user | striptags }}</div>
{# 渲染时不转义 #}
<div>{{ user | safe }}</div>
{# 动态开启关闭转义 #}
{% autoescape False %}
<div>{{ user }}</div>
{% endautoescape %}
include.html
<h1>这是include1.html中的内容</h1>
{% include 'include2.html' %}
include2.html
<div>这是include2.html中的内容</div>
macro.html
{# 定义宏 #}
{% macro show_name(name) %}
<h1>Hello {{ name }}!</h1>
{% endmacro %}
{# 调用宏 #}
{{ show_name(name) }}
macro1.html
{# 导入宏 #}
{% from 'macro.html' import show_name %}
<h1>这是原有的内容</h1>
{# 调用宏 #}
{{ show_name(name) }}
parents.html
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}基础模板标题{% endblock %}</title>
</head>
<body>
{% block body %}<div>默认内容</div>{% endblock %}
</body>
</html>
children.html
{# 继承自另一个模板 #}
{% extends 'parents.html' %}
{# 根据block可以修改原有的block内容 #}
{% block title %}子模板标题{% endblock %}
{% block body %}
{# 保留基础模板中的内容 #}
{{ super() }}
<div>新加的内容</div>
{% endblock %}
flask中基础模板templates相关推荐
- flask中jinjia2模板引擎详解3
接上文 模板继承 Jinji2中的模板继承是jinjia2比较强大的功能之一. 模板继承可以定义一个父级公共的模板,把同一类的模板框架定义出来共享. 这样做一方面可以提取共享代码,减少代码冗余和重复的 ...
- Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法
https://www.cnblogs.com/DragonFire/p/9259999.html 是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jin ...
- Flask中Jinja2模板|如何在Jinja2中格式化一个日期
使用Jinja2,我如何格式化一个日期字段?我知道在Python中我可以简单地做到这一点. print(car.date_of_manufacture.strftime('%Y-%m-%d')) 有两 ...
- flask中jinjia2模板引擎使用详解5
接上文 宏 可以理解为函数,即把一些常用的模板片段做好封装,以便于重用,减少工作量和维护难度. 宏的定义很简单: {%macro xxx()%} ##这里写内容 {%endmacro%} 下面引用官方 ...
- c++中的模板_C ++中的模板
c++中的模板 Templates in C++ are an abstract version of Generic Programming wherein the code is written ...
- Flask框架之模板继承与案例05
Flask框架之模板继承与案例05 一,模版继承 二,静态文件的配置 1.这里列举一个小例子: 三,模版案例(制作豆瓣评分页面) 1.效果图: 2.数据准备: 3.代码链接 一,模版继承 Flask中 ...
- 初学者html网页模板_初学者:在MS Office 2010和2007中使用模板
初学者html网页模板 Sometimes your boss might want you to create a spreadsheet or PowerPoint presentation an ...
- Flask框架基础Jinja2模板
Flask框架基础Jinja2模板-- 潘登同学的flask学习笔记 文章目录 Flask框架基础Jinja2模板-- 潘登同学的flask学习笔记 return 模板 Template 模板的使用 ...
- Flask 中的Jinja2模板引擎
Flask 中的Jinja2模板引擎 在 Web 项目中,前端的显示效果是通过 HTML 语言来实现的,后端的视图函数将数据或模板文件返回给前端. 前端接收到后端返回的结果后,需要通过模板引擎来渲染页 ...
- Python Flask,Jinja2模板,模板中使用特殊变量及函数,闪现信息,get_flashed_messages()
在渲染模板时,不需要手动分配,可以直接在模板中使用的模板变量及函数:config.request.url_for().get_flashed_messages() 在Flask中,有一些特殊的变量和方 ...
最新文章
- Android TV 快进帧预览
- 基于电子邮件的InfoPath表单发布的注意点 [Infopath 2007]
- php添加填空,PHP之preg_replace_callback(),将填空题的[[]]替换成______
- opencv中的安全指针和指针对齐
- 201506110248 ---实验报告
- 双亲委托类加载机制_图解JVM类加载机制和双亲委派模型
- uefi能重置系统吗_无惧UEFI, Win10也能玩转一键自动还原
- 异常和Log4j日志
- 盘点常见元器件级性识别方法
- JavaScript数组反转教程
- 百度地图车辆运动轨迹
- 外卖联盟高级接口 - 美团联盟接口 美团外卖CPS+CPA推广活动推广API接口
- 没有学历可以做程序员吗?
- 2022年全球与中国电缆悬挂夹市场现状及未来发展趋势
- 初中数学教师资格证考试成功通过前辈复习经验分享
- Java实现-中位数
- 【404 App】2.0全新版本正式来袭之ALL模块。
- ValueError: array must not contain infs or NaNs
- 信号幅度单位/功率单位 及其换算 Layout长度单位
- C51简易计算器微机课设
热门文章
- JAVA除数为0报错?
- origin柱状图同时有两组数和两组数差值_SQL和Pandas同时掉到河里,你先救谁?
- 笔记本电脑处理器(CPU)性能排行榜
- Excel如何合并相同项单元格
- MAC chrome 谷歌浏览器全屏显示——隐藏菜单栏
- 【C语言】数组和函数
- 142. 环形链表 II AND 633. 平方数之和
- DeviceDriver(十四):多点触摸(MT协议,Input子系统)
- [视频发布] 掘金 Podcast 报名中,摩拜单车、美团点评团队分享 Vue 最佳实践
- ubuntu18.04通过deb文件安装软件