当前位置: 首页 > news >正文

成都摄影网站建设app推广好做吗

成都摄影网站建设,app推广好做吗,太原网站建设联系方式,阿里巴巴登录入口flask-smorest 简介 flask-smorest: 基于Flask/Marshmallow的REST API框架 flask-smorest 是一个用于创建于数据库无关的REST API的架库。 它使用Flask作为Web服务器,并使用marsmallow对数据进行序列化和反序列化。(类似于drf) 快速入门 flask-smorest对代码应…

flask-smorest

简介

flask-smorest: 基于Flask/Marshmallow的REST API框架

flask-smorest 是一个用于创建于数据库无关的REST API的架库。

它使用Flask作为Web服务器,并使用marsmallow对数据进行序列化和反序列化。(类似于drf)

快速入门

flask-smorest对代码应该如何结构化做了一些设定。应用程序应该在Blueprint中进行拆分。可以使用基本的Flask视图函数,但通常最好使用Flask MethodView。

Marshmallow Schema被用来序列化参数和响应。请求和响应体被序列化为JSON。一个视图函数只有一个成功的响应类型和状态代码。

所以在使用 flask-smorest 前建议先看看 Marshmallow 库

代码示例

首先用Flask应用程序实例化一个Api。

from flask import Flask
from flask.views import MethodView
from marshmallow import Schema, fields, post_load
from flask_smorest import Api, Blueprint, abortapp = Flask(__name__)api = Api(app)  # 注册 flask_smorest

定义一个marshmallow Schema类来输出model

class User:def __init__(self, name, age):self.name = nameself.age = ageself.c_time = datetime.datetime.now()class UserSchema(Schema):name = fields.String()age = fields.Integer()c_time = fields.DateTime()

实例化一个蓝图(Blueprint)

blp = Blueprint('user', 'user', url_prefix='/user')

使用MethodView类来组织资源(resources),用Blueprint.argumentsBlueprint.response来装饰视图方法,指定请求反序列化和响应序列化。

使用abort返回错误,传递错误处理程序(handle_http_exception)使用的kwargs来建立错误响应。

def example(self):if some_condition:abort(400, message='Invalid request')  # 终止请求并返回400错误响应else:# 处理请求的逻辑      

错误处理的另一种方案

1. 通过Exception定义错误类
class BaseCustomException(Exception):def __init__(self, msg):self.msg = msgdef show(self):return self.msgclass TipResponse(BaseCustomException):"""@attention: 提示类响应"""def __init__(self, msg, code=400, status=400):self.code = codeself.status = statussuper().__init__(msg)
2. flask 中注册该错误类型
def init_exception(app: Flask):logger = app.logger@app.errorhandler(TipResponse)def tip_handler(error: TipResponse):"""@attention: 提示"""return BaseResponse(message=error.msg,status=error.status,code=error.code,).asdict()  # 转换成字典返回  dataclass 包的用法
3. 使用
def example(self):if some_condition:raise TipResponse("error info")# 终止请求并返回400错误响应else:# 处理请求的逻辑    

最后,在API中注册蓝图

api.register_blueprint(blp)

使用实例

class UserQuantityView(MethodView):@blp.doc(tags=[v1.name], description="批量上传用户", summary="批量上传用户")@blp.arguments(HeaderBaseSchema, location='headers')@blp.arguments(CreateQuantityUserParserSchema, location="files")@blp.response(200, BaseResponseSchema)def post(self, headers: dict, files: dict):"""批量上传用户"""data = user_service.bulk_create(files)return BaseResponse(data=data)@blp.doc来定义了一些描述信息,包括标签、描述和摘要。
@blp.arguments装饰器用于定义函数参数的验证和转换规则,其中HeaderBaseSchema用于验证和转换headers参数,CreateQuantityUserParserSchema用于验证和转换files参数。
@blp.response装饰器用于定义函数的响应结构,这里返回的是一个HTTP状态码为200的BaseResponseSchema。
http://www.mmbaike.com/news/47017.html

相关文章:

  • 软件开发文档资料包括哪些windows系统优化软件排行榜
  • 做框架模板的网站网站是怎么建立起来的
  • 网站建设 页面外贸平台自建站
  • 北京建设规划许可证网站职业培训机构排名
  • 怎么做购物网站的分类目录百度广告投放平台叫什么
  • 成都网站建设 3e微信最好用的营销软件
  • 洛阳市涧西区建设局网站八八网
  • 自闭症网站的建设意义网络营销在哪里学比较靠谱
  • 建设网站要多少钱贺贵江seo教程
  • 长沙市互联网加网站营销网站建设专家
  • 网站左侧悬浮代码友情链接的检查方法
  • 源码下载网站有哪些怎样策划一个营销型网站
  • 动画设计的大学排名保定百度seo公司
  • 郑州网络公司做医疗网站webview播放视频
  • 中山网站设计电商运营助理
  • 婚纱摄影网站开题报告怎么可以让百度快速收录视频
  • 景区网站怎么做关键词挖掘站长
  • 保险代理人做网站企业网站建设目标
  • 有哪些网站做自建房设计高端定制网站建设
  • 个人网站可以做经营性的吗微信怎么推广找客源
  • 长春网站制作报价阿里云域名注册查询
  • linux可以做网站开发吗网站推广优化排名教程
  • 宿州市做网站的公司百度竞价排名机制
  • 杭州网站建设哪家权威百度网页推广
  • wordpress实现同步登录网站自然优化
  • googleseo服务公司谷歌搜索广告优化
  • wordpress文章内多页面张家界网站seo
  • 网站设计与开发培训长沙网站seo技术厂家
  • 东坑网站建设凡科建站收费价目表
  • wordpress用什么主题优化推广联盟