Flask自学笔记(2)

HTTP相关

flask流程简图

1. http请求

1.1 URL组成

信息说明
http://协议字符,表示协议类型
/blubyte.com主机服务器地址,域名表示
/root/homeURL规则
?name=blubyte & high=160查询字符串,用&分隔键值对

1.2 Request对象

1. Flask的request对象封装了请求报文中的所有字段数据(请求时的查询字符串、URL、Cookie、http方法等),可以调用request对象的属性或方法来获得。
2. 需要 from flask import request,来导入对象。
3. 像args,form等字典对象,获取值时,不要用类似“args[键名]”的方式来获取,取代之用字典get()方法 , 因为第一种方式如果没有对应值则会报错,而第二种get()方法的第二个参数可以设置默认值。

request对象常用的属性及方法说明注意
args储存解析后的查询字符串此属性是一字典对象,可用字典的get()方法获取值
form储存解析后的表单此属性是一字典对象
cookies包含随请求提交的cookies字典此属性是一字典对象
data字符串形式的请求数据
method获取http请求方法
path获取URL的主机地址后的URL规则如:http://baidu.com/home,经过request.path之后就是‘/home
referrer存储上次请求的URL第一次请求时会是空值

1.3 设置路由监听http方法

操作代码说明
@app.route('/',methods=[‘GET’,‘POST’])设置路由可监听GET和POST方法,注意method是个列表

1.4 请求钩子

钩子作用
before_first_request
before_request
after_request
  1. 请求钩子可用在设置上下文变量,常与g合用
  2. 请求钩子也可在连接,断开数据库时使用

2. http响应

2.1 响应状态码

状态码基本意义
2 - -成功
3 - -重定向
4 - -客户端错误
5 - -服务端错误

2.2 重定向响应

Flask重定向方法代码
在视图函数的返回值中,可用 [主体],[状态码],[响应报文首部字段] 的 形式return "[主体]" ,302,{'Location': '[URL]'}
使用 flaskredirect 函数,用 URL参数,生成重定向响应return redirect('[URL]')

redirect函数默认响应状态码是302,可在函数的第二个参数或用‘code=[状态码]’定制其他状态码

2.3 错误响应处理

处理方法代码
使用 errorhandler 装饰器@app.errorhandler([状态码])
def [错误视图函数名] (e):
     return [响应主体]
使用 abort 函数,传入状态码作参数@app.route('/')
def [视图函数名]():
     abort([状态码])

注意执行abort函数后,其下代码都不会执行

2.4 Response对象

创建过程代码
导入make_response函数from flask import make_response
传入响应主体参数,生成Response类对象response = make_reponse('[响应主体]')
Response类对象的常用属性及方法说明
status_code整数类的状态码
status状态码,文本类型
headers响应报文首部,是一个字典对象
set_cookie()设置cookie

2.5 Cookie

  1. 创建response 对象的 set_cookie() 方法
  2. 查询request对象的cookies属性的get()方法
创建Cookie代码
建立Response对象response = make_reponse('[响应主体]')
用set_cookie()方法设置response.set_cookie([键],[值])
查询Cookie代码
使用request对象的cookies属性request.cookies.get([键],[默认值])

2.6 Session对象

设置密钥代码
通过Flask类的secret_key属性设置app.secret_key = [随机代码]
通过os模块的的getenv()方法获取环境变量值app.secret_key = os.getenv('SECRET_KEY',[如没有环境变量,则取该值])
  1. session 是一个字典对象,可像字典一样操作
  2. session 对数据加密后,数据存储在一个叫session的Cookie
  3. 在session中任然不安全,所以还是别把敏感信息放到session中
  4. 再使用session之前必须先设置一个密钥
步骤代码
导入sessionfrom flask import session
添加到sessionsession[键] = [值]
在session中查询session.get([键],[默认值])
从session中删除session.pop([键])
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值