現(xiàn)在我們通過查詢字符串的方式給render_template 傳參,我們就要用到flask 庫的flask.request.args.get() 函數(shù)先獲取參數(shù),,在index.html 中給url_for 傳next ,,最后在login.html 函數(shù)中通過{{ next }} 傳值,。代碼如下:
rendertemplateDemo.py 文件
# coding: utf-8
from flask import Flask, render_template import flask
app = Flask(__name__) # type: Flask app.debug = True
@app.route('/') def hello_world():
title = {"tPrize": "key", "info": {"name": u"Warren", "age": 18, "gender": u"男"}, "val": {"title": u'標(biāo)題', "content": u'內(nèi)容'}} return render_template('post/index.html', **title)
@app.route('/login/') def login():
next = flask.request.args.get('next') return render_template('login.html', next=next)
if __name__ == '__main__':
app.run()
index.html 文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>這里是title</title>
</head>
<body>
{# <p>這段代碼被注釋了</p>#}
<p>{{ info }}</p>
<a href="{{ url_for('login', next='首頁') }}">鏈接到登錄頁面</a>
</body>
</html>
login.html 文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登錄頁面</title>
</head>
<body>
這是登錄頁面,,它來自{{ next }},。
</body>
</html>
然后執(zhí)行代碼,,看到: 點(diǎn)擊“鏈接到登錄頁面”后: 如果你想指定傳值類型是path 類型,,那么就要給login 函數(shù)傳值了: 修改rendertemplateDemo.py 文件的login 函數(shù)如下: @app.route('/login/<next>/') def login(next):
# next = flask.request.args.get('next')
return render_template('login.html', next=next)
另外兩個(gè)文件不變,,然后執(zhí)行代碼: 點(diǎn)擊“鏈接到登錄頁面”后:
|