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

西安免费网站搭建制作网络项目实施方案

西安免费网站搭建制作,网络项目实施方案,网页设计师的认识,聊城网站优化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.yayakq.cn/news/200233/

相关文章:

  • 做网签合同的网站是瑞昌市环保局网站建设
  • 金华高端网站建设公司小辰青岛网站建设
  • 网站建设:成都今网科技宁波开发网络推广平台
  • 在哪家网站做淘宝客最好dedecms怎么关闭网站
  • 湖北省住房和城乡建设部门户网站那个视频网站可以做gif
  • 免费室内设计网站都有哪些wordpress 在线课程主题
  • 微小店网站建设多少钱中山做网站哪个公司好
  • 文化网站前置审批合肥网站建设+一浪
  • 东莞专业网站建设公司万网网
  • 微商怎么做 和淘宝网站一样吗网站建设动画教程
  • 女人动漫做受网站seo排名优化什么意思
  • 网站注销申请书网盟推广是什么
  • 胶南网站建设多少钱做的网站响应速度慢
  • 凡客网站做SEO能被收录吗网站域名归属权
  • 广东高端网站建设公司wordpress 删除示例页面
  • 景德镇陶瓷企业网站建设成都网站建设十强企业
  • wap网站前台模板大数据在营销中的应用案例
  • 贵阳公司官方网站建设易站网站建设
  • 网站创建设计SEO优化象客怎么把网站做的好看
  • 电子商务网站建设和运营WordPress自适应扁平化
  • 深圳龙岗网站开发罗源做网站的公司
  • 中山网站建设联系电话网站备案信息代码在哪里找
  • 中国建设网站用户名wordpress后台访问卡
  • 公司网站网址注册和备案哪里找网站文章页做百度小程序
  • 公司网站建设公北京做网站推广兼职
  • 企业网站推广和营销网页推广区别陕西的建设厅官方网站
  • 国际贸易网站建设 中企动力湖北手游推广渠道和推广方式
  • 网站服务器做缓存wordpress相关推荐代码
  • 免费logo设计网站推荐房地产网站设计
  • 网站开发运营策划案松江团购做网站