Python Web框架
xFlask的Python项目详细描述
xFlask结合了Flask的扩展,它的设计目的是使入门快速而容易地构建restfulweb服务,并能够扩展到复杂的应用程序。它从一个简单的Flask包装器及其扩展开始,提供一个简单的平台来简化API开发。在
1。功能
- 遵循模型、数据访问对象(DAO)、服务和控制器的概念
- 使用烧瓶注入器可以轻松地分离组件依赖关系
- 提供了一种使用棉花糖验证值对象(VO)的简单方法
- 通过Flask迁移来轻松维护数据库模式
- 提供简单的日志API,帮助调试应用程序流
- 适用于测试应用组件的烧瓶测试
2。用法
- 型号
fromxflask.sqlalchemyimportColumn,Integer,Stringfromxflask.sqlalchemy.modelimportAuditModelclassUser(AuditModel):id=Column(Integer,primary_key=True)username=Column(String(50),unique=True,nullable=False)password=Column(String(50),unique=False,nullable=False)
- 刀
- 服务
frominjectorimportinjectfromxflask.serviceimportCrudServicefrommain.dao.userimportUserDaoclassUserService(CrudService):@injectdef__init__(self,dao:UserDao):super(UserService,self).__init__(dao)defget_user(self,user_id):returnself.user_dao.get_user(user_id)
- 控制器
frominjectorimportinjectfromxflask.classyimportroute,JsonBodyfromxflask.controllerimportControllerfromxflask.web.responseimportResponsefrommain.controller.vo.userimportUserVofrommain.model.userimportUserfrommain.service.userimportUserServiceclassUserController(Controller):route_base='/api/user/'@injectdef__init__(self,user_service:UserService):self.user_service=user_service@route('<user_id>')defget(self,user_id):user=self.user_service.get(user_id)ifuserisNone:returnResponse.not_found()returnResponse.success(user)@route('',methods=['PUT'])defupdate(self,user:JsonBody(UserVo)):self.user_service.update(User(**user))returnResponse.success()
- 值对象(VO)
fromxflask.marshmallowimportInt,Strfromxflask.marshmallowimportvalidatefromxflask.web.voimportVoclassUserVo(Vo):id:Int(required=True)username:Str(validate=validate.Length(min=2,max=50),required=True)password:Str(validate=validate.Length(min=2,max=50),required=True)
- 项目
标签: