想理解URL反转,那就得先知道URL正转。也就是用户在浏览器地址栏中输入一个URL,然后回车,浏览器就可以取到在Flask中定义的route下的视图函数所返回的内容。简单的说就是知道URL找视图函数。
如下面的代码:用户输入http://127.0.0.1:5000/userinfo/username 回车,就会返回userinfo(name)这个视图函数定义的return内容。正转的URL就是/userinfo/<username>
@app.route('/userinfo/<name>')
def userinfo(name):
return "User name is: %s" %name
反转URL就是知道视图函数的名称,就可以知道URL。要想使用URL反转功能,先导入url_for
还是直接上代码上图吧,一目了然:
from flask import Flask, url_for
app = Flask(__name__)
@app.route("/")
def hello_flask():
url_reverse01 = url_for('article',id='asdfasdf')
url_reverse02 = url_for('userinfo',name='uncleBen')
return "Here is the first URL reverse: {}, <br> Here is the second URL reverse: {}".format(url_reverse01, url_reverse02)
@app.route('/article/<id>')
def article(id):
return "Your request parameter is %s" %id
@app.route('/userinfo/<name>')
def userinfo(name):
return "User name is: %s" %name
if __name__ == '__main__':
app.run(debug=True)
实际效果如下:
小结:
- 使用URL反转之前,必须先导入url_for。
- url_for('视图函数名称','视图函数参数,如果有的话')。url_for()这个函数里面的参数一定要有引号!!!
- URL反转可以用于: - 网页重定向 - 网页模板中
下篇将介绍网页之间的跳转和URL重定向。