Flask模板abort方法、错误接收方法和设置响应头信息(import flask 报错)

网友投稿 219 2022-08-28


Flask模板abort方法、错误接收方法和设置响应头信息(import flask 报错)

abort函数 立即终止视图函数的执行

abort(403)

1、里面可以指定flask import Flask,abort,Responseapp = Flask(__name__)@app.route("/login",methods=["GET"])def login(): # 使用abort函数可以使视图函数立即终止执行 # 并可以自定义信息返回给前端 name = '' pwd = '' if name != "admin" or pwd != "123456": abort(400) return "login success"if __name__ == '__main__': app.run(debug=True)

使用Response方法自定义返回页面的内容

首先导入Response方法

from flask import Flask,Response

resp = Response("login failed")abort(resp)

接收错误状态码方法

@app.errorhandler(404)            # 用来接收程序抛出的404请求,并绑定视图函数返回一个自定义友好页面

def error_404(err):return "页面错误,错误代码:%s" % err

视图函数中的参数要带,这是错误代码的详细信息

from flask import Flask,abort,Responseapp = Flask(__name__)@app.route("/login",methods=["GET"])def login(): # 使用abort函数可以使视图函数立即终止执行 # 并可以自定义信息返回给前端 name = '' pwd = '' if name != "admin" or pwd != "123456": # resp = Response("login failed") abort(404) return "login success"@app.errorhandler(404)def error_404(err): return "页面无效,错误代码:%s" % errif __name__ == '__main__': app.run(debug=True)

可以看到状态码是200,这样可以有效的防止扫描器扫描

设置自定义响应信息的两种方法

1、return后跟

return "hello flask" , 400 , {"nbfes":"baicai" , "music":"djone"}

参数

1、返回到页面的内容(响应体)

2、状态码,此处状态码并无实际意义,只是给页面返回一个状态值,页面还是正常返回(状态码)

3、以字典的形式设置响应包的头(响应头)

@app.route("/index")def index(): return "hello flask" , 400 , {"nbfes":"baicai","music":"dj"}

状态码的第二个参数可以是一个字符串,即状态码的解释

例如:默认状态下200状态码代表OK,404代表NOT FOUND

那么如果定义了666状态码,怎么设置解释呢,即

return "hello flask" , "666 nbfe status" , {"music":"dj","nbfes":"baicai"}

2、使用make_response设置响应信息

导入make_response方法

from flask import make_response@app.route("/index")def index(): # 使用make_response来设置响应信息 resp = make_response("hello flask") # 里面放返回到页面的响应体,返回一个对象 resp.status = "666 nbfesStatus" # 设置响应码 resp.headers["city"] = "shandong" # 设置响应头 return resp

resp = make_response(响应体) # 返回一个对象resp.status = # 设置响应状态码 resp.headers[""] = # 设置响应头信息

处理Json字符串的两种方法

1、import json    使用json模块处理

json.dumps(字典)        # 将Python字典转换为json字符串

json.loads(字符串)        # 将字符串转换为Python字典

from flask import Flaskimport jsonapp = Flask(__name__)@app.route("/index")def index(): # json就是字符串 data = { "name":"Python", "age":20 } # json.dumps(字典) 将python的字典转换为json字符串 # json.loads(字符串) 将json字符串转换为字典 json_str = json.dumps(data) return json_str , 200 , {"Content-Type":"application/json"}if __name__ == '__main__': app.run(debug=True)

2、也可以通过flask模块内置的方法 jsonify 进行转换

from flask import Flask,jsonify......@app.route("/index")def index(): data = { "name":"Python", "age":20 } return jsonify(data)....

jsonify 将字典转为json数据,并自动设置响应头为(Content-Type : application/json)

也可以手动添加键值对进去,jsonify会自动转为json数据返回到页面

return jsonify(city="shandong",music="dj")


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Flask模板设置Cookie和Session(flask cookie)
下一篇:mybatis源码解读之executor包懒加载功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~