Flask:redirect()函数

Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2

重定向,就是在客户端提交请求后,本来是访问A页面,结果,后台给了B页面,当然,B页面中才有需要的信息。

在Flask中,使用redirect()函数实现重定向功能,函数原型如下:
flask.redirect(location, code=302, Response=None)

参数说明:

location是一个链接地址,可以使用url_for()函数得到,也可以是静态文件地址,测试了模板文件的地址,失败——看来模板还是挺安全的;

code可以取值为301、302、303、305、307,默认302,300、304不可以;

Response是一个响应类,默认是werkzeug.wrappers.Response,而flask.Response是werkzeug.wrappers.Response的子类——在写文前测试了好多次使用Response这个参数,现在才知道,这是一位类,不是一个对象,就保持默认吧——为什么要更改呢?怎样的更改是好的?;

下面是我的测试代码及页面:

 1 # flask.redirect(location, code=302, Response=None) test
 2 @app.route(‘/rd0‘)
 3 def rd0():
 4     return redirect(‘the value in rd0‘)
 5
 6 @app.route(‘/rd1‘)
 7 def rd1():
 8     return redirect(Response(‘the value in rd1‘))
 9
10 @app.route(‘/rd11‘)
11 def rd11():
12     return redirect(‘rdtest‘, 302, Response=Response(‘the value in rd11‘))
13     #return redirect(‘rdtest‘, 302, Response) # 更改为此行代码了才可以正常
14
15 @app.route(‘/rd2‘)
16 def rd2():
17     return redirect(url_for(‘hello‘))
18
19 @app.route(‘/rd3‘)
20 def rd3():
21     return redirect(‘/static/static1.html‘)
22
23 @app.route(‘/rd31‘)
24 def rd31():
25     return redirect(‘/templates/tmpt1.html‘)
26
27 @app.route(‘/rd4‘)
28 def rd4():
29     return redirect(url_for(‘hello‘), 307)

各个链接的测试页面:

/rd0

/rd1

/rd11

将rd11()的12行代码注释掉、取消地13行代码注释,测试页面如下:这次传了正确的参数,没有发生服务器错误了!

/rd2

/rd3

/rd31

/rd4

絮叨:

初步掌握这个重定向函数了,花了近一个半小时啊!中间遇到的问题又让自己进步了,开心!尤其是看英文文档的功力——看着文档都把参数类型搞错了!

原文地址:https://www.cnblogs.com/luo630/p/9063105.html

时间: 2024-10-17 12:18:42

Flask:redirect()函数的相关文章

CakePHP redirect函数

public function getContract($value=''){ App::uses ( 'UserContractController', 'Controller' ); $Contract = new UserContractController(); $pdfs = $Contract->getContract(1); if($pdfs['code']!=1){ exit("<script>alert('".$pdfs['msg']."'

Python json函数与Flask jsonify函数

JSON数据结构 要把json与字典区分开来 dumps(字典转换成Json) loads(Json转换成字典) 参考: Python 的字典是一种数据结构,JSON 是一种数据格式. json 就是一个根据某种约定格式编写的纯字符串,不具备任何数据结构的特征.而 python 的字典的字符串表现形式的规则看上去和 json 类似,但是字典本身是一个完整的数据结构,实现了一切自身该有的算法. Python的字典key可以是任意可hash对象,json只能是字符串. 形式上有些相像,但JSON是纯

Flask:工厂函数和蓝本

我们用pycharm去新建Flask项目的时候,会默认生成开发文件.如下,其中包括static,templates,flask1_prj.py文件 在最初开始的时候,我们的app等声明都是在flask1_prj.py中进行的,然后程序实例的运行也是在一起的.就像下面的这样 app = Flask(__name__) bootstrap=Bootstrap(app) app.config['SECRET_KEY']=os.urandom(20) @app.route('/',methods=['G

flask 钩子函数

说明: before_request函数,就是一个装饰器,他可以把需要设置为钩子函数的代码放到视图函数执行之前执行 示例: from flask import Flask,url_for,redirect,render_template,request app = Flask(__name__) @app.route('/') def index(): print ('index') return 'index' @app.before_request def mybefore_request(

golang http.Redirect()函数容易误解的地方

调用http.Redirect()函数后,并不会立刻进行跳转,而是继续顺序执行函数中的所有的代码后,再进行跳转.但是Redirect后面的写界面的代码不会发送到游览器前端的. 代码如下:func Chat(w http.ResponseWriter, r *http.Request) { fmt.Println("Chat") r.ParseForm() withWho := r.Form.Get("withWho") type ToWho struct { Nam

11.Flask钩子函数

在Flask中钩子函数是使用特定的装饰器的函数.为什么叫做钩子函数呢,是因为钩子函数可以在正常执行的代码中,插入一段自己想要执行的代码,那么这种函数就叫做钩子函数. before_first_request:Flask项目第一次部署后会执行的钩子函数. before_request:请求已经到达了Flask,但是还没有进入到具体的视图函数之前调用.一般这个就是在函数之前,我们可以把一些后面需要用到的数据先处理好,方便视图函数使用. before_request @app.before_first

flask 钩子函数errorhandler

一.errorhandler  接收状态吗,可以自定义返回这种状态码的响应的处理办法,如果发生一些异常的时候,比如404.500那么如果想要优雅的处理这些错误,就可以使用errorhandler 注意点: *在errorhandler装饰钩子函数下,要返回响应的状态码 *在errorhandler装饰的钩子函数中,必须要写一个参数,来接收错误的信息,如果没有参数,就会直接报错 *使用flask,abort 可以手动的抛出响应的错误,比如开发者在发现参数不正确的时候可以自己手动抛出一个404错误

ThinkPHP源码学习 redirect函数 URL重定向

/**  * URL重定向  * @param string $url 重定向的URL地址  * @param integer $time 重定向的等待时间(秒)  * @param string $msg 重定向前的提示信息  * @return void  */  $url='http://www.baidu.com';  $time=3; function redirect($url, $time=0, $msg='') { //多行URL地址支持     $url        = st

flask钩子函数

@app.context_processor def context_processor(): return {"current_user":"zhiliao"}#这里必须有返回值,而且返回值必须是字典 #下面错误的写法 @app.context_processor def context_processor_error(): if hasattr(g,'user'): return {"current_user":g.user}#不能这样写,函