一.基于admin后台管理系统的特点:
- 权限管理:权限管理是后台管理系统必不可少的部分,拥有权限管理,可以赋予用户增删改查表权限(可以分别赋予用户对不同的表有不同的操作权限);
- 前端样式少:后台管理主要用于管理人员管理数据库中数据,因此样式不是特别重要但功能全;
- 快速开发:目前很多系统在开发中,后台系统的开发工具量与前台开发工作量相差不多甚至有点比前台开发工作量还大,而Django的后台管理系统是一套全自动的管理系统(即admin)
二.admin的使用:
1.自动完成admin的相关配置:
1.1在用Pycharm创建完Django项目后,会自动注册在setting.py的INSTALLED_APPS(Django所有的app都应该注册在这里)中,如图1,以及会配置相应的url,当然,你可以把url修改成你需要的名字(这里使用默认),如图2 图1
图2
2.你可以直接欢快的配置和使用admin了,是不是开心的飞起啊:
2.1把你的表建好然后生成(在termina中敲入命令(python manage.py makemigrations--该命令会在migrations数据库中表的相应脚本的py文件;python manage.py migrate--执行脚本文件生成或修改表))。
2.2使用python manage.py runserver启动Django项目(可以指定端口,默认为8000),然后便可以在浏览器中访问配置好了的url了(默认为127.0.0.1:8000/admin),如图3
图3
2.3显然,得有个用户和密码,不急,又来python manage.py createsuperuser(输入用户名和密码创建一个超级用户),创建成功后在启动项目便可以登录访问了。如图4,为英文,Django是全球性框架,支持多语言,要想是中文的,只需在setting.py中修改语言配置(把LANGUAGE_CODE=\'en-us\'替换成LANGUAGE_CODE=‘zh-hans’,注:Django 1.8之前为\'zh-cn\';时区设置以可以改为上海,便于时间的统一TIME_ZONE=\'UTC\'替换为TIME_ZONE=\'Asia/Shanghai\',还得把USE_TZ改成False,与本地时间统一,不然时间会取UTC的时间),如图5。会自动生成组,是不是发现没有自己创建的表啊(Django默认会帮你自动注册用户表在后台展示),还是不急,只需简单的配置即可:
图4
图5
2.4在相关app下有个admin.py,只需在该文件中做相应的配置即可(以两张表为例),如图6,效果如图7(当然我的User表重载了AbstractUser):
图6
图7
3.当然,admin的功能远不止这些,要完成你需要的功能,只需在admin.py中进行相关配置即可:
这里例举几个常用的,详细可以参考该文章:https://www.cnblogs.com/wumingxiaoyao/p/6928297.html
3.1基本设置(以User表为例,注:字段名一定要和models表中的字段名一致):
class UserProfileAdmin(admin.ModelAdmin): #显示表中哪些字段 list_display = [\'name\',\'birthday\',\'gender\'] #list_per_page设置每页显示多少条记录,默认是100条 list_per_page = 50 #ordering设置默认排序字段,负号表示降序排序 ordering = (\'-add_time\',) #list_editable 设置默认可编辑字段 list_editable = [\'school_id\', \'name\'] #fk_fields 设置显示外键字段 fk_fields = (\'school_id\',) #设置哪些字段可以点击进入编辑界面 list_display_links = (\'id\', \'name\')
3.2筛选器,主要用于过滤和搜索数据:
class BlogAdmin(admin.ModelAdmin): #筛选器 list_filter =(\'name\', \'gender\', \'school_id\', \'add_time\') #过滤器 search_fields =(\'name\', \'school_id\', \'gender\') #搜索字段 date_hierarchy = \'add_time\' # 详细时间分层筛选
3.3调整页面内容和标题:
class MyAdminSite(admin.AdminSite): site_header = \'悦动乐后台管理系统\' # 此处设置页面显示标题 site_title = \'悦动乐\' # 此处设置页面头部标题 admin_site = MyAdminSite(name=\'management\')
4.总结:
admin虽然已经很好了,但xadmin的功能更加强大,不急, 学习从未止步......