Become a sponsor

参数管理
参数管理模块用于管理动态系统参数,支持按参数键查询、修改,无需重启服务即可生效。
application/param/
├── models.py # 参数模型
├── forms.py # 表单验证
├── services.py # 业务逻辑层
├── views.py # 视图层
└── urls.py # 路由配置# application/param/models.py
from application.models import BaseModel
class Param(BaseModel):
"""参数模型类"""
class Meta:
db_table = 'django_param'
name = models.CharField(max_length=100, verbose_name='参数名称')
code = models.CharField(max_length=100, verbose_name='参数编码')
value = models.CharField(max_length=255, verbose_name='参数值')
type = models.IntegerField(verbose_name='参数类型:0-系统 1-业务')
status = models.IntegerField(verbose_name='参数状态:1-正常 2-禁用')
sort = models.IntegerField(verbose_name='参数排序')
note = models.CharField(max_length=255, null=True, blank=True, verbose_name='参数备注')# application/param/forms.py
from django import forms
from application.param.models import Param
class ParamForm(forms.ModelForm):
class Meta:
model = Param
fields = ['name', 'code', 'value', 'type', 'status', 'sort', 'note']
error_messages = {
'name': {
'required': '参数名称不能为空',
},
'code': {
'required': '参数编码不能为空',
},
'value': {
'required': '参数值不能为空',
},
}这是参数模块的核心自定义方法,供其他业务模块调用:
# application/param/services.py
def get_value_by_code(code, default=None):
"""根据参数编码获取参数值"""
param = Param.objects.filter(
code=code, status=1, is_delete=False
).first()
return param.value if param else defaultfrom application.param.services import get_value_by_code
# 获取参数值(存在且状态=正常时返回值,否则返回默认值)
default_pwd = get_value_by_code("USER_DEFAULT_PASSWORD", "123456")
upload_limit = get_value_by_code("UPLOAD_MAX_SIZE", "10")
maintenance = get_value_by_code("MAINTENANCE_MODE", "0")典型用法
在其他 service 中注入参数值,实现运行时可调的业务配置:
from application.param.services import get_value_by_code
def reset_password(user_id):
# 从参数表读取默认密码,无需硬编码
default_pwd = get_value_by_code("USER_DEFAULT_PASSWORD", "123456")
# ... 重置密码逻辑| 接口 | 方法 | 权限节点 | 说明 |
|---|---|---|---|
/param/page | GET | sys:param:page | 分页查询 |
/param/detail/<int:param_id> | GET | sys:param:detail | 详情查询 |
/param/add | POST | sys:param:add | 新增参数 |
/param/update | POST | sys:param:update | 编辑参数 |
/param/delete/<int:param_id> | POST | sys:param:delete | 删除参数 |
分页接口支持以下查询参数:
| 参数 | 类型 | 说明 |
|---|---|---|
pageNo | int | 页码,默认 1 |
pageSize | int | 每页条数,默认 10 |
name | string | 参数名称,模糊搜索 |
code | string | 参数编码,模糊搜索 |
type | int | 参数类型(0=系统 1=业务) |
status | int | 参数状态(1=正常 2=禁用) |
| 特性 | 参数管理(Param) | 系统配置(Config) |
|---|---|---|
| 用途 | 单个系统参数 | 配置分组 + 配置项 |
| 结构 | 扁平(name+code+value) | 两级(config + config_item) |
| 典型场景 | 默认密码、功能开关 | SMTP 配置、站点信息 |
参数管理模块是项目中典型的简单 CRUD 模块,核心特点:
1. 按编码取值:get_value_by_code() 供其他业务模块调用
2. 模糊搜索:name/code 模糊搜索,type/status 等值搜索
3. 唯一性校验:name 和 code 双重唯一性
4. 软删除 + 状态过滤:自动过滤已删除和已禁用的参数