Flask之巩固10-19

10、请求对象

from flask import request 这代码太常见了

我发现request是一个LocalProxy的对象,位于local.py模块下,local.py位于werkzeug包下底层来了……

request代表请求对象,每一个请求进来都是一个request对象

a、request.form是个字典,代表请求body中的form,封装的老方便老

b、request.args也是个字典,代表请求path中的query部分,欧耶

c、request.cookies也是字典,代表请求header中的Cookie部分,后面多个key-value组成的字典,欧耶

 

11、redirect() 用于重定向请求到另外的函数中,嘿嘿

 

12、视图函数的返回值会自动转换为一个响应对象,Response对象

如果返回值是一个字符串,那么会被转换为一个包含作为响应body中的字符串、一个 200OK返回码和一个 text/html 类型的响应对象。以下是转换的规则:

  1. 如果视图返回的是一个响应对象,那么就直接返回它。
  2. 如果返回的是一个字符串,那么根据这个字符串和缺省参数生成一个用于返回的 响应对象。
  3. 如果返回的是一个元组,那么元组中的项目可以提供额外的信息。元组中必须至少 包含一个项目,且项目应当由 (response, status, headers) 或者 (response, headers) 组成。 status 的值会重载状态代码, headers 是一个由额外头部值组成的列表或字典。
  4. 如果以上都不是,那么 Flask 会假定返回值是一个有效的 WSGI 应用并把它转换为 一个响应对象

 

13、 make_response()

 

14、可以在一个函数内部创建 Flask 实例来代替创建全局实例。这个函数被 称为 应用工厂

两种方式,反正躲不掉Flask对象

好吧,我也是放在app package的 __init__下了,不过我没用应用工厂的方式,我只是用了全局变量的方式

app=Flask(__name__)

应用工厂的方式更好啊,卧槽,起码config与数据库的配置都放在一起了,再次我就用应用工厂了

 

15、SQLITE就是写入比较慢,因为是按照顺序进行的,我一开始的时候用了它,后来改成Mysql

 

16、数据库连接往往与请求绑定。在处理请求的某个时刻,连接被创建。在发送响应 之前连接被关闭

 

17、g 是一个特殊对象,独立于每一个请求。在处理请求过程中,它可以用于储存 可能多个函数都会用到的数据。把连接储存于其中,可以多次使用,而不用在同一个 请求中每次调用 get_db 时都创建一个新的连接,这样比较好啊,用g来做数据持久化了

 

18、current_app 是另一个特殊对象,该对象指向处理请求的 Flask 应用。这里 使用了应用工厂,那么在其余的代码中就不会出现应用对象,所以要用current_app

 

19、URL对应的函数,称为视图(中文名拉风),这尼玛作为一条low不low

你可能感兴趣的:(后端合集)