时间:2023-02-09 10:21:01 | 来源:建站知识
时间:2023-02-09 10:21:01 来源:建站知识
在上篇文章中,我们学习了Flask框架——response响应对象及request对象,这篇文章我们来学习Flask框架——重定向、url_for。redirect(location,code=302,Response=None)
其中:from flask import Flask, redirectapp=Flask(__name__)#路由装饰器@app.route('/index')def index(): return "<a href='/register'>首页</a>"@app.route('/register')def register(): return "<a href='/redirect'>跳转重定向页面redirect</a>"@app.route('/redirect')def get_redirect(): return redirect('/index',code=302,Response=None)if __name__ == '__main__': app.run(port=8080,debug=True)
这里我们使用了三次路由装饰器与视图函数并绑定URL链接,其URL分别为:http://127.0.0.1:8080/indexhttp://127.0.0.1:8080/registerhttp://127.0.0.1:8080/redirect
首先我们进入第一个URL链接时并点击首页超链接就会跳转到第二个URL链接页面,跳转页面后,点击跳转重定向页面的超链接就会跳转到第一个URL链接页面,而在浏览器那一栏的URL链接为:http://127.0.0.1:8080/index。@app.route('/',endpoint='视图函数的别名')
为视图函数起别名,那么怎么使用该别名呢?这时我们可以使用url_for()方法,语法结构为:url_for('视图函数名或视图函数别名')
示例代码如下所示:from flask import Flask, redirect, url_forapp=Flask(__name__)@app.route('/indexsdafsfsalkdhasfkljsdalf',endpoint='shouye') #添加endpoint参数为视图函数其别名def index(): return "<a href='/redirect'>首页</a>"@app.route('/redirect') def get_redirect(): return redirect(url_for('shouye'),code=302,Response=None) if __name__ == '__main__': app.run(port=8080,debug=True)
首先我们为第一个视图函数添加了endpoint参数的值,该值就是视图函数的另一个名字,这样我们就可以通过url_for()方法并传入endpoint参数的值,就可以指向返回第一个视图函数的URL链接页面。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <form action="{{ url_for('use_urlfor') }}" method="get"> <input type="submit" value="提交"> </form></body></html>
这里我们在HTML模板中使用了url_for()方法并传入了视图函数名,当然也可以传入视图函数的别名。from flask import Flask, render_templateapp = Flask(__name__)@app.route('/')def hello_world(): return render_template('index.html') #渲染index.html模板文件@app.route('/use_urlfor',endpoint='index')def use_urlfor(): return '在模板文件中使用url_for' #返回字符串if __name__ == '__main__': app.run()
运行Flask程序,访问http://127.0.0.1:5000/并点击提交就会跳转页面,跳转的页面显示内容为:在模板文件中使用url_for。关键词: