爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9748|回复: 1

[混合编程] Flask之模板引擎Jinja2

[复制链接]

新浪微博达人勋

发表于 2020-3-23 09:43:13 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 15195775117 于 2020-10-22 17:18 编辑

【Jinja2之缘起】
视图函数的作用是响应请求,响应操作通常包括“业务逻辑”和“表现逻辑”,类似后端和前端,所以flask也搞前后端分离,把表现逻辑集中用模板体现。

模板是一个很傻瓜的东西,是个文本,以下就是一个模板:
“name同学在subject考试中考了mark分,荣列班级第rank名,以资鼓励。”

其中的单词是“占位变量”,属于动态部分,具体的值在请求的上下文中才知道。
用真值替换占位变量过程叫做“渲染”。

渲染效果示例:
“刘小明同学在语文考试中考了80分,荣列班级第6名,以资鼓励。”

Jinja2是渲染模板的强大引擎。

心得:
其实意思很傻瓜,却用了些生涩的术语,让初学者望而生畏,
不得不说,使用老外研究的成果,还是存在些文化语言隔阂,
对于这种科技性资料,翻译是很重要的,需要抓住神,
我个人感觉“视图函数”虽然英文是View function,但它就是“响应函数”啊,为什么不叫“响应函数”?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2020-3-23 16:44:30 | 显示全部楼层
本帖最后由 15195775117 于 2020-10-22 17:19 编辑

【模板实操】
在E:\flasky\templates目录下放模板文件:
360截图20200323163646544.jpg
虽然是HTML文件,但写法特殊:
360截图20200323163514972.jpg 360截图20200323163531579.jpg

from flask import Flask,render_template
#出现flask TemplateNotFound这个问题,
#原因在于Flask这个对象一个项目中只能创建一个,把它放到了一个__init__.py文件中
#template_folder这个属性,所以默认是templates这个文件夹,
#由于__init___.py文件的目录与templates没有在统一目录下,所以找不到。
#我们在定义这个时,改为
app = Flask(__name__, template_folder=r'E:\flasky\templates',static_folder="",static_url_path="")

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/<name>/<int:age>')
def age(name,age):
    return render_template('age.html',age=str(age),name=name)

#启动服务器应用
app.run(debug=True)#debug=True


360截图20200323163403087.jpg

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表