设计接单子网站,文字图片生成器在线,wordpress引用文件,影视广告文章目录 1. HTTP响应1.1 响应报文1.2 常见HTTP状态码1.3 在flask中如何生成响应1.3.1重定向1.3.2错误响应 1.4响应格式 在flask程序中#xff0c;客户端发出的请求触发相应的视图函数#xff0c;获取返回值会作为响应的主体#xff0c;最后生成完整的响应#xff0c;即响应… 文章目录 1. HTTP响应1.1 响应报文1.2 常见HTTP状态码1.3 在flask中如何生成响应1.3.1重定向1.3.2错误响应 1.4响应格式 在flask程序中客户端发出的请求触发相应的视图函数获取返回值会作为响应的主体最后生成完整的响应即响应报文。 1. HTTP响应
1.1 响应报文
响应报文主要由协议版本、状态码、原因短语、响应首部和响应主体组成。
协议版本响应报文的开头通常包含协议版本信息用于标识使用的通信协议的版本。如HTTP/1.1。状态码状态码是一个三位数字的代码用于表示请求的处理结果。常见的状态码有200成功、404未找到、500服务器内部错误等。原因短语原因短语是对状态码的文本解释用于提供关于请求处理结果的更详细的信息。响应首部响应首部包含了一些额外的信息如响应内容的类型、长度等。这些信息对于理解响应内容非常重要。响应主体响应主体是实际的数据内容即服务器返回给客户端的具体信息。
1.2 常见HTTP状态码
类型状态码原因短语说明成功200OK请求被正常处理成功201Created请求被处理并创建了一个新资源成功204No Content请求处理成功但无内容返回重定向301Move Permanently永久重定向重定向302Found临时性重定向重定向304Not Modified请求的资源未被修改重定向缓存的资源客户端错误400Bad Request表示请求无效即请求报文中存在错误客户端错误401Unauthorized类似403表示请求资源未授权客户端错误403Forbidden表示请求资源被服务器拒绝访问客户端错误404Not Found表示服务器上找不到请求的资源或URL无效服务器端错误500Internal Server Error服务器内部发生错误
1.3 在flask中如何生成响应 响应大部分内容由服务器处理大多数情况下我们只负责返回主体内容。响应在flask中使用Response对象表示。 Flask会先判断是否可以找到与请求url相匹配的路由如果没有返回404。如果找到就会调用对应的视图函数视图函数的返回值构成了响应报文的主题内容正确返回的状态码为200。
1.3.1重定向 如果你访问http://localhost:5000/hi你会发现页面加载后地址栏中的URL变成了http://localhost:5000/hellp。这种行为被称为重定向你可以理解为网页跳转。 代码示例
from flask import Flask, redirect, url_forapp.route(/hello)
def hello(): # 直接返回网页return redirect(/hi)app.route(/hi)
def hi():return redirect(url_for(hello))1.3.2错误响应 如果你访问http://localhost:5000/brew/coffee会获得一个418错误响应I’m a teapot 大多数情况下flask可以自动处理常见的错误响应。Http错误对应的异常类在werkzeug的werkzeug.exceptions模块中被定义抛出这些异常即可返回对应的错误响应。如果你想手动返回错误响应你可以使用flask提供的abort()函数。
from flask import Flask, abortapp.route(/404)
def not_found():abort(404)abort 函数不需要使用return返回但他之后的代码也不会在执行。
1.4响应格式
纯文本 MIME类型text/plain 当MIME类型设置为纯文本时浏览器会以文本形式显示返回值。HTML MIME类型text/html 当MIME类型设置为text/html时浏览器会将返回值渲染成html。XML MIME类型application/xml XML是指Extensible Markup Language(可扩展标记语言)他是一种简单灵活的文本格式被设计用来存储和交换数据。XML和HTML的不同之处在于HTML的标签用于显示内容而XML的标签只用于定义数据。JSON MIME类型application/json JSON是指JavaScript object Notation(Javascript 对象表示法)是一种流行的、轻量的数据交换格式。他的出现是为了弥补xml的各种不足。在Python中通过引入json模块调用json.dumps()方法将字典、列表或元组序列化为JSON字符串。Flask提供了包装这些方法的jsonify()函数使操作更方便。
from flask import jsonifyapp.route(/foo)
def foo():return jsonify(namehello, gender45)return jsonify({name: hello, gender: 45)return jsonify(messageerror), 500flask获取json数据可以使用request.get_json()方法和request.json属性。