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就可以了.
但是我担心以后会长度不够,如果出现这种情况,只需要修改接口上的限制数字就行了,不涉及数据库的修改.