1、URL传参
对一个固定页面下传入url参数。需要给定一个id,并且使用<id>传参,这样才能返回一个值。
#-*- coding:utf-8 -*-
from flask import Flask
app = Flask(__name__)
@app.route("/")
def HelloWorld():
return "HelloWorld!"
@app.route("/urlParams/<id>")
def urlParams(id):
return "Your Params is %s !" % id
if __name__ == "__main__":
app.run()
在地址栏随便输入一个参数123得到:
2、URL反转
想实现url反转需要导入模块url_for,并且已经知道要找的url对应的函数的名称。例如定义了一个pig函数,要找pig的url。
#-*- coding:utf-8 -*-
from flask import Flask, url_for
app = Flask(__name__)
@app.route("/")
def HelloWorld():
print url_for("pig")
print url_for("urlParams", id="1234")
return "HelloWorld!"
@app.route("/pig/")
def pig():
return "pig"
@app.route("/urlParams/<id>")
def urlParams(id):
return "Your Params is %s !" % id
if __name__ == "__main__":
app.run()
刷新网页后会发现终端打印了:
3、重定向
想实现url反转需要导入模块redirect。例如要访问默认主页但是会被重定向到pig页。注意,参数要写路由地址。
#-*- coding:utf-8 -*-
from flask import Flask, url_for, redirect
app = Flask(__name__)
@app.route("/")
def HelloWorld():
return redirect("/pig/")
return "HelloWorld!"
@app.route("/pig/")
def pig():
return "pig"
if __name__ == "__main__":
app.run()
访问主页会自动跳转到pig页
但是这种办法一旦url修改了,就可能因为要修改的地方太多导致出现错误。所以应该采用第二种办法:(借用url反转)
#-*- coding:utf-8 -*-
from flask import Flask, url_for, redirect
app = Flask(__name__)
@app.route("/")
def HelloWorld():
pig_url = url_for("pig")
return redirect(pig_url)
return "HelloWorld!"
@app.route("/pig/")
def pig():
return "pig"
if __name__ == "__main__":
app.run()
这样即便修改url地址就只修改@app.route("/pig")一处即可。
PS:重定向多用于是否login