Skip to content

基础框架

COMMON

ORM

  1. 统一数据库层的常用操作:分页,to client
  2. 支持django orm, BaseModel
  3. sqlalchemy transaction
  4. mongo?

Baseview

  1. 输入参数校验(jsonschema)
  2. 参数别名
  3. 统一输出处理,去掉目前直接return response的形式
  4. 输出schema
  5. 标准化的流程:
def check_params():
    return *args

def process(*args):
    return *data

def output(*data):
    return result

LOG

统一log格式

EXCEPTION CODE

细化和统一错误和错误码

class GmError(Exception):
    def __init__(self, msg, dev_msg):


class BussinessError(GmError):
    pass

class SystemError(GmError):
    pass

class ParamError(GmError):
    pass

class ErrorCode(IntEnum):
    PARAM_ERROR = 101
    ORDER_ERROR = 120
    PAY_ERROR = 130

SUPPORT

集成三方的接口:email,celery,短信,推送,地图等

单元测试

BaseTestCase

配置

配置方案:py

目录结构

proj/
    -proj/
        settings.py
        url.py
        uwsgi.xml
        wsgi.py
        loggers.py

    -conf/
        deploy.py
        local.py
    -run/
        uwsgi/
            start
            reload
            stop
    -common/
        model_base.py   // 放库
        sqlalchemy_base.py
        view_base.py
        exception.py
    -support/   
        email
        message
        jpush
        celery
        gaode_map
        ...
    -app_***/   // 所有app以app开头
        models.py
        urls.py
        define.py   // 所有枚举,定义
        service/
        views/
        tests/

    requirements.txt
    run.sh
    manage.py

集成方式

控制脚本

  1. 本地维护一个独立的git模板工程
  2. 生成工程模板:复制模板生成新的工程
  3. 同步最新的模板:将目标工程里面的模板文件拷贝回模板工程,然后commit pull,如果有冲突,将新的/冲突文件拷贝回目标工程,手动merge后重新提交
  4. 提交公共模块修改:同步最新的模板,然后push
  5. 生成db文档:遍历db表结构生成db文档
  6. 生成接口文档:根据url和view,生成统一格式的接口文档