Gointerface接口声明实现及作用详解
240
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~