Flask入门三:请求与响应
来源:互联网 发布:韩国身份证知乎 编辑:程序博客网 时间:2024/04/30 02:34
二.请求与响应
1、HTTP方法
GET: 浏览器告知服务器:只 获取 页面上的信息并发给我。这是最常用的方法。
POST: 浏览器告诉服务器:想在 URL 上 发布 新信息。并且,服务器必须确保数
据已存储且仅存储一次。这是 HTML 表单通常发送数据到服务器的方法。
2、程序和请求上下文
请求上下文:
from flask import request@app.route('/useragent/')def userAgent(): user_agent = request.headers.get('User-Agent') return '<p>Your browser is %s</p>' % user_agent
程序上下文:
from flask import current_app# print('current_app.name:',current_app.name)app_ctx = app.app_context()app_ctx.push()current_app.nameapp_ctx.pop()
没激活程序上下文之前就调用 current_app.name 会导致错误,但推送完上下文
之后就可以调用了。
注意,在程序实例上调用 app.app_context() 可获得一个程序上下文。也就是说,
有两种方式来创建程序上下文:
1.第一种是隐式的:无论何时当一个请求上下文被压栈时, 如果有必要的话一个程
序上下文会被一起创建。由于这个原因,你可以忽略程序上下文的存在,除非你需
要它。
2. 第二种是显式地调用 app_context() 方法:
from flask import Flask, current_appapp = Flask(__name__)with app.app_context(): # within this block, current_app points to app. print current_app.name
3、响应
Flask 调用视图函数后,会将其返回值作为响应的内容。
@app.route('/')def index(): return '<h1>Bad Request</h1>', 400
视图函数返回值即为响应
如果不想返回一个元组,Flask视图函数还可以返回Response对象。make_response()
函数可接受一或多个参数(和视图函数的返回值一样),并返回一个 Response 对
象。有时我们需要在视图函数中进行这种转换,然后在响应对象上调用各种方法,
进一步设置响应。下例创建了一个响应对象:
from flask import make_response@app.route('/response/')def response(): resp = make_response('<h1>Bad Request</h1>',400) return resp
* 响应的两种方法: *
1. 视图函数直接返回一个元组 (response, status, headers)
2. 视图函数返回一个make_resonse()函数产生的响应对象
4、Cookies
cookies的操作:
1. 通过请求对象的 cookies 属性来访问 Cookies。(请求对象的 cookies 属性是一个
内容为客户端提交的所有 Cookies 的字典。)
2. 通过响应对象的set_cookie方法来设置 Cookies。
@app.route('/cookie/')def cookie(): resp = make_response('set cookie') resp.set_cookie('name','myname') return resp
5、请求钩子
请求钩子使用修饰器实现。 Flask 支持以下 4 种钩子:
• before_first_request:注册一个函数,在处理第一个请求之前运行。• before_request:注册一个函数,在每次请求之前运行。• after_request:注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行。• teardown_request:注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行。
- Flask入门三:请求与响应
- Flask: 请求-响应
- Flask 请求和响应
- flask源码笔记:三,app.py模块(3)——Flask的初始化之请求和响应
- Flask——请求响应循环
- (三)请求响应
- 【AJAX好学易用系列】之三:请求与响应
- 初学 Java web(三)JSP页面请求与响应
- http请求与响应
- 请求与响应
- HTTP请求与响应
- Http请求与响应
- Servlet-请求与响应
- http请求与响应
- http请求与响应
- Python Flask Web 第二课 —— 请求-响应循环
- Flask 使用重定向作为POST请求的响应
- 原生JS实现Ajax跨域请求flask响应内容
- 漫画 | 什么是跳跃表?
- 问题:在Keil vision5.18调试STM32代码usart.c时,提示如下错误:
- Flask入门二:快速入门
- 公用的update
- poj2401轮廓线dp(基础模板)
- Flask入门三:请求与响应
- java netty http https pool 例子
- Java读取classpath下的文件
- hdu 1227 Fast Food
- .net core partial view的一些心得
- Flask入门四:模板
- ZXing扫描的优化
- linux学习笔记(六)--Putty的使用需要注意的小问题
- 661. Image Smoother