• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Yancy00

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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)

posted on 2023-03-15 22:44  Yancy00  阅读(85)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3