# FlaskBoot-v1.0 **Repository Path**: LiBaoXuan/FlaskBoot-v1.0 ## Basic Information - **Project Name**: FlaskBoot-v1.0 - **Description**: FlaskBoot 基于Flask快速开发脚手架 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2022-09-24 - **Last Updated**: 2024-11-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FlaskBoot 基于Flask快速开发脚手架 ## 引言 一次偶然的机会,在工作中用到了Flask框架。在项目开发初期,项目的整体搭建比较简陋,团队中大部分成员是写Java的,导致开发了一些接口以后,没有统一的标准造成代码难以维护。Flask框架更像是为我们开发者提供了一个Web开发引擎,所需的其它开发工具需要引入相应的插件,当然这也符合Flask轻量的特点——“按需插拔”。 所以开发该脚手架的初衷就是定义一套能够拿来即用的Flask工程,无需自己从零组装,可基于FlaskBoot项目模板按需定制化自己的项目。 ## 项目工程目录 + config:配置文件目录 + controller:restful接口文件目录 + dao:封装直接sql语句文件目录 + model:ORM模型目录 + schema:序列化与反序列化模型目录 + service:业务目录 + static:静态文件目录 + templates:模板文件目录 + utils:工具文件目录 + vo:数据处理类目录 ## 开发约定 + 方法封装在类中 ```python class UserService(BaseService): @classmethod def get_all_user(cls): users = User.query.all() user_list = UserSchema().dump(users, many=True) res = { 'userList': user_list, 'count': len(user_list) } return res ``` + 引入插件的操作实体类需在etx.py中实例化,防止循环引用 ```python from flask_sqlalchemy import SQLAlchemy from flask_marshmallow import Marshmallow # 防止循环依赖 db = SQLAlchemy() ma = Marshmallow() ``` + dao文件下建议封装一些执行原生SQL的方法,便于在service层调用,使SQL与逻辑分离便于维护 + controller层的返回值可以使用如下格式: ```python class UserController: @staticmethod @user_bp.route('/getAllUser', methods=['GET']) def get_all_user(): users = UserService.get_all_user() return {'code': 10000, 'data': users, 'message': 'success'} ``` + 注册蓝图 在app.py中 ```python app.register_blueprint(user_bp) ```