URL传参:
Flask中传递变量或参数可以通过表单和地址栏两种方式进行,其中通过浏览器地址栏传递或获取变量或参数使用较多。通过这样我们可以使用相同的URL制定不同的参数是实现访问不同的内容。
传参语法:‘/<参数名>/’
注意:
1. 参数要放到一对尖括号中
2. 视图函数中需设置同URL中相同的参数名
示例:
from flask import Flask,url_for,redirect
app = Flask(__name__)
@app.route('/')
def hello_world():
return "url传参演示"
@app.route('/name/<user>')
def list_user(user):
return "接收到的用户为: %s" % user
@app.route('/name/<int:id>')
def list_id(id):
return "接收到的编号为: %s" % id
if __name__ == '__main__':
app.run()
实现效果:
URL反转
有时我们需要使用在视图函数中定义的URL,则需要根据视图函数名称得到当前所指向的URL,这就是URL反转。
这里用到了flask框架中内置的url_for()函数,其最简单的用法时以视图函数名作为参数,返回对应的URL。
示例:
from flask import Flask,url_for,redirect
app = Flask(__name__)
@app.route('/')
def index():
url=url_for('list_user',user='zhangsan')
return "url反转结果为 %s" % url
@app.route('/name/<user>')
def list_user(user):
return "接收到的用户为: %s" % user
@app.route('/name/<int:id>')
def list_id(id):
return "接收到的编号为: %s" % id
if __name__ == '__main__':
app.run()
实现效果:
页面重定向
所谓页面重定向即当用户打开某个页面的时候,我们期望页面跳转到另一个指定的页面,让用户完成指定的操作或执行特定的动作。
比如当游客用户在商城网站中点击购物车,我们规定只有已登录用户才可查看其购物车,因而我们跳转到登录页面使其完成登录操作方可查看购物车。
flask框架中提供了redirect()重定向函数,跳转到指定的URL。
示例:
from flask import Flask,url_for,redirect
app = Flask(__name__)
@app.route('/')
def hello_world():
print("已访问")
url=url_for('login')
return redirect(url)
@app.route('/login')
def login():
return "登陆后访问"
if __name__ == '__main__':
app.run()
实现效果:
输入url 127.0.0.1:5000后自动跳转至模拟登陆页面