当前位置 : 主页 > 编程语言 > python >

Flask模板abort方法、错误接收方法和设置响应头信息

来源:互联网 收集:自由互联 发布时间:2022-06-20
abort函数 立即终止视图函数的执行 abort(403) 1、里面可以指定http状态码,但必须是存在的状态码,不然会报错,使用状态码会跳转到状态码页面 2、可以自定义信息返回给前端页面 from

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

abort(403)

1、里面可以指定http状态码,但必须是存在的状态码,不然会报错,使用状态码会跳转到状态码页面

2、可以自定义信息返回给前端页面

from flask import Flask,abort,Response

app = 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)

Flask模板abort方法、错误接收方法和设置响应头信息_状态码


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

首先导入Response方法

from flask import Flask,Response

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

Flask模板abort方法、错误接收方法和设置响应头信息_flask_02



接收错误状态码方法

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

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

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

from flask import Flask,abort,Response

app = 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" % err

if __name__ == '__main__':
app.run(debug=True)

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

Flask模板abort方法、错误接收方法和设置响应头信息_状态码_03




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

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"}

Flask模板abort方法、错误接收方法和设置响应头信息_json_04

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

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

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

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

Flask模板abort方法、错误接收方法和设置响应头信息_flask_05

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 respresp = make_response(响应体) # 返回一个对象
resp.status = # 设置响应状态码
resp.headers[""] = # 设置响应头信息

Flask模板abort方法、错误接收方法和设置响应头信息_flask_06


处理Json字符串的两种方法

1、import json    使用json模块处理

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

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

from flask import Flask
import json

app = 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)

Flask模板abort方法、错误接收方法和设置响应头信息_json_07

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")

Flask模板abort方法、错误接收方法和设置响应头信息_状态码_08

上一篇:Flask模板设置Cookie和Session
下一篇:没有了
网友评论