flask-页面模板渲染JinJa2
flask用 render_template()函数渲染前端页面
from flask import Flask,render_template
app=Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__=='__main__':
app.run()
视图函数传参数给html页面
class User:
def __init__(self,name,email):
self.name=name
self.email=email
# 显示用户详情. 从视图函数给html页面传递各种参数.
@app.route('/details')
def show_details():
person={
'name':'Sary',
'age':22,
'gender':'女'
}
title='Test'
hobbys=['听音乐','写代码','玩游戏']
z3=User('Zhang3','abcde12345@126.com')
return render_template('details.html', # 要渲染的页面
title=title, # 传单一普通变量
person=person, # 传字典
hobbyList=hobbys,# 传列表,元组
user=z3) # 传对象
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{ title }}</title>
</head>
<body>
<!--字典参数传过来,可以用key获取值. 也可以用 '.' 获取值-->
<h1>大家好,我是{{ person["name"] }},今年{{person.age}}岁了.</h1>
<hr>
<h2>我的兴趣爱好有:</h2>
<ul>
{% for hobby in hobbyList %}
<li>{{ hobby }}</li>
{% endfor %}
</ul>
<h2>我的秘书是:{{user.name}},有事请联系:{{user.email}}</h2>
</body>
</html>
总结:
变量通过嵌套双大括号获值.
对象,字典.都可以通过 '.'操作获取对应属性.
补充
给模板传参数时.如果参数过多.
可以先凑成一个字典.然后再通过 **操作将字典变为关键字参数传给前端页面.
parameters={
'title':title,
'person':person,
'hobbyList':hobbys,
'user':z3
}
return render_template('details.html',**parameters)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现