Flask.4
Posted zbcdamao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask.4相关的知识,希望对你有一定的参考价值。
为移动端编写接口
-
-
编写路由
-
浏览器 (客户端一种)CS/BS
-
B是一个C子集
-
-
服务器返回数据
-
网页数据 html
-
浏览器
-
-
JSON数据
-
ajax javascript发送请求的一种方式
-
requests Python的一个请求库
-
各种平台有各种平台的请求方式
-
-
-
为移动端编写接口非常简单
-
接口地址是什么
-
/xxx/yyy/zzz/
-
见名知意
-
-
接口需要什么参数,返回什么格式的数据
-
参数根据业务场景
-
JSON数据
RESTFul
-
软件架构设计思想
-
CS,客户端和服务端这种架构模型中
-
表现层状态转换
-
主语 (资源)
-
URI 每个URI代表一种资源
-
资源展现给我们的形式就叫做表现层
-
通过HTTP的请求谓词来实现表现层转换
-
-
重要概念
-
URI
-
HTTP请求谓词
-
JSON
-
Flask-RESTful
-
轻量级的RESTApi插件
-
marshal_with
-
装饰器
-
参数接收模板
-
将返回的数据进行格式化
-
数据内容如果比模板多,结果会自动删除多余的数据
-
数据内容如果比模板少,结果会自动进行填充
-
-
-
核心
-
请求转换 输入
-
输出格式化 输出
blog_fields = { "id": fields.Integer, "title": fields.String, "content": fields.String, } return_fields = { "msg": fields.String, "status": fields.Integer, "data": fields.Nested(blog_fields) } parse = reqparse.RequestParser() parse.add_argument("title", required=True, help="请填写标题") parse.add_argument("content", required=True, help="请填写内容") class BlogsResource(Resource): @marshal_with(return_fields) def get(self): blogs = Blog.query.all() data = { "msg": "OK", "status": 200, "data": blogs } return data
#或者不加装饰器,直接返回 return marshal(data, return_fields)
Flask-RESTful
-
输入
-
reqparse.RequestParser()
-
对参数进行处理
-
参数获取
-
获取校验
-
参数名
-
类型限制 type
-
错误提示 help
-
是否必须 required
-
隐私别名 dest
-
参数来源 location
-
参数数量,多个参数值 action
-
-
-
-
输出
-
将对象转换成JSON(dict)
-
marshal_with 装饰
-
marshal 函数
-
将数据和模板传递进来
-
-
模板
-
字典
-
key 就是json中key
-
value 就是fileds.XXX
-
-
fields
-
attribute指定映射关系
-
默认格式化的时候,会根据字典中的key去数据查找
-
通过指定 attribute之后,会根据 attribute去查找
-
-
default 默认值
-
-
fields.Nested
-
嵌套字段
-
对象嵌套
-
可以自动处理单个对象和列表对象
-
-
fields.List
-
解决列表型数据
-
-
-
from flask_restful import reqparse parse = reqparse.RequestParser() parse.add_argument("username", required=True, type=str, help="username can‘t be blank") parse.add_argument("password", required=True, type=str, help="password can‘t be blank") parse.add_argument("con_password", type=str) parse.add_argument("action", required=True, type=str, help="please supply action")
#attribute 为字段名, 前面的内容为展示名, 旨在不行让别人看到数据库中的字段名 student_fields = { "name": fields.String(attribute="s_name"), "s_age": fields.Integer, "hehe": fields.String(default=""), "hehe_time": fields.Integer(default=3) }
以上是关于Flask.4的主要内容,如果未能解决你的问题,请参考以下文章