Django的使用
一、基本配置
数据库初始化
model里定义数据库模型,需要先初始化数据库:
python manage.py makemigrations
python manage.py migrate
然后在admin.py中进行注册
修改菜单名
在apps.py中修改项目名
from django.apps import AppConfigclass
App01Config(AppConfig):
name = 'XXX'
verbose_name = 'XXX管理系统'
在models.py中表模型中添加Meta元标签:
class Meta:
verbose_name = 'XXX'
verbose_name_plural = verbose_name
触发器
1 | @receiver(op, sender=Model) |
实例Model被增删前后,触发执行函数function,比如从A表删除一条记录,B表中也要随之删除。
二、SimpleUI
自定义菜单
SIMPLEUI_CONFIG = {
# 是否使用系统默认菜单,自定义菜单时建议关闭。
'system_keep': False,
# 用于菜单排序和过滤, 不填此字段为默认排序和全部显示。空列表[] 为全部不显示.
'menu_display': ['发票管理','权限管理'],
# 设置是否开启动态菜单, 默认为False. 如果开启, 则会在每次用户登陆时刷新展示菜单内容
'dynamic': False,
'menus': [
{
'app': 'manager',
'name': '发票管理',
'icon': 'fa fa-user-md',
'models': [
{
'name': '发票列表',
# app名/model里定义的数据模型/。
'url': 'manager/invoice/',
'icon': 'fa fa-user'
},
]
},
{
'app': 'auth',
'name': '权限管理',
'icon': 'fas fa-user-shield',
'models': [
{
'name': '管理用户列表',
'icon': 'fa fa-user-secret',
'url': 'auth/user/'
},
{
'name': '用户组',
'icon': 'fa fa-th-list',
'url': 'auth/group/'
}
]
},
]
}
注意踩坑,url里要用小写。。。。。。
Tip1
自定义菜单里的url写全(IP那种),映射到view中的请求即可注册到菜单中,
就不需要全都要用admin的model去映射。
不过扩展的新应用app需要在INSTALLED_APPS这里面注册
Tip2
三、QuerySet
1、all()
tt = Model.objects.all()
返回所有的Model的实例及其字段值,相当于SQL的:
SELECT * FROM Model
2、values()
tt = Model.objects.values('id', 'username')
tt = Model.objects.values_list('id', 'username')
返回所有的Model的实例及其指定字段值,相当于SQL的:
SELECT id, username FROM Model
当只需要获取一个属性的值时,可以通过制定flat=True来获得:
tt = Model.objects.values_list(‘username’, flat=True)
相当于SQL的:
SELECT username FROM Model
3、filter()
tt = Model.objects.filter(username = "xx")
相当于SQL的:
SELECT * FROM Model where username = “xx”
4、get()
obj= Model .objects.get(username =‘xx’)
上述所有函数除了get方法,返回的结果全是QuerySet, 可用for循环取出来即可