网络学习
POST请求把数据放请求体里(url里也可以放),GET请求把数据放请求首行的url里面,无请求体
content-type是请求的格式,请求体也是一个字符串,需要解码,解码的方式按照content-type来。如上图是JSON格式,请求体就按照JSON的序列化来。
相应首行的200指的是正常返回。(404找不到,5开头服务器错误,3开头重定向问题)
FastApi部分
一键启动
FastApi自带的接口文档
分模块写路由
在app文件夹下建app01子文件夹
在main.py添加绑定
路径参数
路由是有顺序的
如出现路由一致,会先调用上面的路由函数。
查询参数
与路径参数不同的是,查询参数是以 /jobs?kd=java&xl=本科&gj=3-5年传递,不用写在后端的URL里面,函数参数里面不属于路径参数的 会自动被认为是查询参数。
查询参数可以有缺省值,但无缺省时必须要有值。
类型注解
可以限制参数的类型
上述写法在导入Optional包后可以简写成为 xl:Optional[str]
pytantic
简介
用法
定义好的类型可以直接用于函数的类型限制。
类里面也可以为变量加默认值
pytantic里面有一个Feild类,支持对参数的范围限制
自定义数据检查
导入pytantic里面validator就可以用,类似于flask的表单检查。装饰器里面写要检查的字段名,cls表示当前类,value表示前端传过来的数据值。
类可以嵌套使用。
Form
1. 简介和安装
2. 使用
3. 作用
用于接收前端表单数据,映射赋值给这两个变量。常用于账号密码
小文件上传
1. 包
2. socket的content-type
当参数默认值为File()时自动改变type
3. 使用
多文件
句柄文件上传
1. 包
2. 使用
request
1. 包
falsk下的Request
2. 使用
静态文件
1. 包
2. 使用
3. 可以让客户端直接访问到这些静态资源
响应模型
1. 使用
2. 作用
自动返回的数据转为成定好的类型。
特殊参数
函数参数,设置后只返回非默认值参数
Jinja2
1. python占位符的格式
ORM
1. 包下载
2. 使用
大项目需要先画ER图
数据库迁移
查询操作
需要异步操作
过滤查询 -- 返回 Queryset对象
get的过滤查询 -- 返回模型类型的对象
模糊查询
取指定列的数据组成键值对
插入
自然链接查询
更新
简便写法,**字典 可以将字典对象拆成age=18,id=1 的数据,*list理
Restful规范
中间件
1. 定义
2. 用法
越下面的中间件越早执行,对于m1 callnext函数是m2, 对于m2callnext是当前访问的路由函数。
response就是当前访问的路由函数的返回值。
可以对相应socket做统一处理。
CORS组件
处理跨域请求
在中间件上对给响应头都加上一个参数,意味所有ip都可访问。