我来为您讲解 "Flask模板渲染与Get和Post请求详细介绍" 的攻略。
Flask模板渲染
在 Flask 中,可以使用 Jinja2 模板引擎渲染模板。
创建模板
首先,我们需要在项目文件夹下创建一个 templates 文件夹,并创建一个 HTML 模板文件。
例如,创建一个名为 index.html
的模板文件:
<!doctype html>
<html>
<head>
<title>Flask Template</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
在模板文件中,我们可以使用 {{ }} 来引用 Python 变量,例如上面的 {{ name }} 就是一个变量。
渲染模板
在 Flask 中使用 render_template() 方法来进行模板渲染。需要在 Flask 中导入这个方法。
同时,在 Flask 中通过 url_for()
方法来生成一个 URL,使得在 HTML 中可以动态的跳转到其他的页面。
例如,我们在 Flask 中返回该页面:
from flask import Flask, render_template, url_for
app = Flask(__name__)
@app.route('/')
def index():
name = 'Flask'
return render_template('index.html', name=name)
if __name__ == '__main__':
app.run(debug=True)
在 render_template()
方法中传递一个模板名称和将被替换的变量的值。在模板中可以通过变量名来访问传递进来的值。
示例
我们创建一个名为 hello.html
的模板文件,用于输出我们输入的名字。
<!doctype html>
<html>
<head>
<title>Hello Flask!</title>
</head>
<body>
<form method="post">
<input type="text" name="name">
<input type="submit" value="Say Hello">
</form>
{% if message %}
<h2>Hello, {{ message }}!</h2>
{% endif %}
</body>
</html>
在 Flask 中,我们定义一个路由 /hello
,同时支持 GET 和 POST 请求。
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/hello', methods=['GET', 'POST'])
def hello():
if request.method == 'POST':
name = request.form['name']
message = f'Hello, {name}!'
return render_template('hello.html', message=message)
return render_template('hello.html')
if __name__ == '__main__':
app.run(debug=True)
在这个例子中,首先判断请求的方法是 GET 还是 POST。如果是 POST 请求,获取 POST
方法中对应的 name
参数,利用 format 函数生成一个包含我们所输入的名字的字符串。将渲染结果返回给模板,模板自动渲染相应的内容。如果是 GET 请求,则直接渲染模板,并显示一个输入框和一段提示文字。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Flask模板渲染与Get和Post请求详细介绍 - Python技术站