目录
一.URL传递参数
有的时候,Flask页面需要具备传参的能力,其中URL方式传递参数用的比较多。
而flask框架通过URL方式传递参数的代码如下:
from flask import Flask
app=Flask(__name__)
@app.route('/')
def index():
return '这是初始页面'
@app.route('/text1/<text2>')
def text1(text2):
return "接收到的名称为:%s" % text2
if __name__=='__main__':
app.run(debug=True)
在URL输入
http://127.0.0.1:5000/text1/text3
得到运行效果如下:
而传递int参数,则可以修改如下:
from flask import Flask
app=Flask(__name__)
@app.route('/')
def index():
return '这是初始页面'
@app.route('/text1/<int:id>')
def text1(id):
return "接收到的数字为:%s" % id
if __name__=='__main__':
app.run(debug=True)
则只能传递数字
传递非数字则会报错
二.URL反转内容
有的时候,我们需要得到当前访问请求函数的url,可以用url_for来得到,具体用法如下:
from flask import Flask,url_for
app=Flask(__name__)
@app.route('/')
def index():
url1=(url_for('trans',id='121'))
return "URL反转内容为:%s" %url1
@app.route('/trans/<id>')
def trans(id):
return u"请求的参数为:%s" % id
if __name__=='__main__':
app.run(debug=True)
运行效果如下:
三.页面跳转与重定向
有时候用户访问某个页面,而我们希望他登陆后才可以访问。
from flask import Flask,url_for,redirect
STATE=False
app=Flask(__name__)
@app.route('/')
def index():
global STATE
if STATE:
return "登陆成功"
else:
url1=(url_for('login',id='123456'))
return redirect(url1)
@app.route('/login/<id>')
def login(id):
global STATE
if id=="123456":
STATE=True
url1=(url_for('index'))
return redirect(url1)
else:
url1=(url_for('loginfail'))
return redirect(url1)
@app.route('/loginfail')
def loginfail():
return "登陆失败"
if __name__=='__main__':
app.run(debug=True)