博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask 5 模板1
阅读量:7077 次
发布时间:2019-06-28

本文共 1689 字,大约阅读时间需要 5 分钟。

NOTE

1.VF的作用:生成请求的响应。一般来说请求会改变程序的状态,这种变化会在视图函数中产生。

eg.用户在网站中注册了一个新账户,用户在表单中输入电子邮件地址和密码,然后提交到服务器,服务器接收到请求,然后Flask将请求分发到处理注册的视图函数。这个视图函数首先要访问数据库添加新用户,然后生成响应返回游览器。

访问数据库添加新用户的过程称为业务逻辑,生成响应返回称为表现逻辑。

2.将业务逻辑和表现逻辑混杂在一起使代码难以理解和维护。把表现逻辑移动到模板中能够提升程序的可维护性。

3.模板是一个保含响应文本的文件,其中有需要用上下文中的真实值替换占位变量的动态部分,也有无法改变的静态部分。

用真实值替换变量,返回响应字符串,称为渲染。

Flask使用了名为Jinja2的强大模板引擎。

4.Demo

Jinja2 templates/index.html

Hello World!

Jinja2 templates/user.html

Hello, {
{ name }}!

模板渲染:从flask导入render_template函数,以集成Jinja2引擎。

#!/usr/bin/env pythonfrom flask import Flask, render_templateapp = Flask(__name__)@app.route('/')def index():    return render_template('index.html')@app.route('/user/
')def user(name): return render_template('user.html', name=name)if __name__ == '__main__': app.run(debug=True)

name=name 关键字键值对,左边的name是参数名,右边的name是变量。

(venv) sh-3.2# ./hello.py  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger pin code: 195-717-834127.0.0.1 - - [18/Feb/2017 15:52:11] "GET / HTTP/1.1" 200 -127.0.0.1 - - [18/Feb/2017 15:52:22] "GET / HTTP/1.1" 200 -127.0.0.1 - - [18/Feb/2017 15:52:23] "GET /user/wasdns HTTP/1.1" 200 -127.0.0.1 - - [18/Feb/2017 15:52:25] "GET /user/wasdns HTTP/1.1" 200 -

885822-20170218155302457-1456728311.png

5.{

{ name }}结构表示一个变量,是一种特殊的占位符。Jinja2能够识别所有类型的变量,甚至是一些复杂的类型。

此外,可以使用过滤器来修改变量,过滤器名添加在变量名之后,中间使用竖线划分。

=>

safe        渲染值时不转义capitaliza  把值的首字母替换为大写,其他为小写。

eg.

Hello, {
{ name|capitalize }}!

@app.route('/user/
')def user(name): return render_template('filter.html', name=name)
127.0.0.1 - - [18/Feb/2017 16:11:01] "GET /user/wasdns HTTP/1.1" 200 -

885822-20170218161140660-269495692.png

出于安全考虑,Jinja2会转义所有变量。有些情况下需要显示变量中存储的html代码,这个时候就需要使用safe过滤器。

2017/2/18

转载地址:http://sqdml.baihongyu.com/

你可能感兴趣的文章
PyYAML序列化yaml文件数据
查看>>
python实例pyspark以及python中文显示
查看>>
我的友情链接
查看>>
让Apache支持shtml实现include文件解析的配置方法
查看>>
ASP.NET Cache的一些总结2
查看>>
asp.net 用正则表达式过滤内容中的电话,qq,email
查看>>
图书馆管理系统程序设计
查看>>
左神算法基础班4_5折纸问题
查看>>
创建服务
查看>>
NYOJ467 中缀式变后缀式
查看>>
自动化交易机器人Beta猪
查看>>
About SOuP
查看>>
LeetCode:Balanced Binary Tree
查看>>
华为架构师8年经验谈:从单体架构到微服务的服务化演进之路
查看>>
04 memory structure
查看>>
FZU OJ:2230 翻翻棋
查看>>
作为程序猿,我们生活在一个幸福的时代
查看>>
正则表达式
查看>>
常用网络设备
查看>>
DM8127-UART驱动
查看>>