Flask 模板
Flask依赖于jinja2模板引擎:https://github.com/mitsuhiko 它的官方主页为:http://jinja.pocoo.org/
为了使Py与HTML独立分开,易于维护而引入模板。
Html要放在templates文件夹里
例一:
index.html:
……
<h1>{{ content }}</h1>
……
from flask import Flask, render_template
app = Flask(__name__)
@app.route(‘/’)
def hello_world():
content = ‘你好’ #渲染的数据要从后端写入模板,而不是直接#写在html上
return render_template(‘index.html’,content = content)
if __name__ == ‘__main__’:
app.run()
例二:
models.py:
class User(object):
def __init__(self, user_id, user_name):
self.user_id = user_id
self.user_name = user_name
user_index.html:
……
<h1>hello {{ user.user_name }}</h1>
……
flaskapp.py:
from flask import Flask, render_template
from models import User
app = Flask(__name__)
@app.route(‘/user’)
def user_index():
user = User(1, ‘luchangyin’)
return render_template(‘user_index.html’, user= user)
if __name__ = ‘__main__’:
app.run()
@app.route(‘/query_user/<user_id>’) #有条件
def query_user(user_id):
user = None
if int(user_id) ==1:
user = User(1, ‘feiniuchongtian’)
return render_template(‘user_id.html’, user= user)
@app.route(‘/users’)
def user_list():
users = []
for i in range(1,11):
user = User(i, ‘feiniuchongtian’+str(i))
users.append(user)
return render_template(‘user_list.html’, users= users)
user_id.html:
……
<body>
{% if user %}
Hello {{ user.user_name }}
{% else %}
No this user
{% endif %}
</body>
……
user_list.html’:
……
<body>
{% for user in users %}
{{ user.user_id }} – {{ user.user_name }}<br>
{% endfor %}
</body>
……
模板的继承
base.html(基类):
……
<body>
<div>
<h1>Header 飞牛</h1>
</div>
{% block content %}
{% endblock %}
<div>
<h1>Footer 飞牛</h1>
</div>
</body>
……
one_base.html(子类): <!—无需写其它多余的标签-->
{% extends “base.html” %} <!—继承父类-->
{% block content %}
<h2>这是第一页</h2>
{% endblock %}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步