Skip to content

Latest commit

 

History

History
58 lines (53 loc) · 2.22 KB

1.md

File metadata and controls

58 lines (53 loc) · 2.22 KB

有关模块相关方法及接口

tag: 0.1.1

涉及文件

account/controllers/mod.py
account/apis/mod.py
account/urls/mod.py
account/urls/__init__.py

概念

模块(mod)是指功能管理,往往对应一组操作.
对于后端而言,比如用户模块,就会涉及到用户的增删改查以及与其它模块关联关系的增删改查等.
对于前端而言,可以使用此模块对应菜单栏的一项.
在这个系统中,可能会出现的模块包括:用户管理、角色管理、部门管理、项目管理等等,当然还有模块自身管理自身,就是模块管理.

代码

为了做到代码的分开管理、所有涉及mod的功能,我们都写到一个对应功能文件中.
controllers下是基础方法、apis下是接口、urls下是url对应关系.
这种写法的好处就是,在开发过程中很容易管理不同功能的代码,而且在以后需要拆分时,也很容易实现拆分.


在account/apis/mod.py中,有一点需要注意

NEED_PERMISSION = False

这个值是为了控制此接口是否进行权限管理,可以在base/api.py中查看具体逻辑.
我这里的设计理念就是所有查询接口都不进行接口的权限控制.
而是在接口内部处理时,使用户只可以看到自己能看到的内容.


在account/models.py中

class ModModel(BaseModel):
    '''
    模块表
    '''
    name = models.CharField('模块名', max_length=32)
    sign = models.CharField('唯一标识', max_length=32)
    rank = models.IntegerField('排序')

    class Meta:
        db_table = 'mod'

这里设置name和sign的最大长度都是32.

class CreateModApi(BaseApi):

    need_params = {
        'name': ('名称', 'required str 16'),
        'sign': ('标识', 'required str 16'),
        'rank': ('排序值', 'required int'),
    }
    def post(self, request, params):
        data = mod_ctl.create_mod(**params)
        return data

但是在接口中限制的其实只有16. 主要原因是目前来看我直接使用16就可以了.
但是我担心以后会长度不够,如果出现这种情况,只需要修改接口上的限制数字就行了,不涉及数据库的修改.