十四、admin和xadmin后台管理系统

后台管理系统特点


  • 权限管理
  • 少量的前端样式
  • 快速的开发

admin管理界面


访问管理界面

在django中,当用户新建项目的时候,系统会自动生成admin后台管理系统。在settings.py文件中,有这么一条:

INSTALLED_APPS = [
    'django.contrib.admin',
     ...
]

django 的admin和自己创建的app一样,都配置有url:

url(r'^admin/', admin.site.urls),

可以通过在浏览器中输入下面的url来访问admin管理系统:

http://127.0.0.1:8000/admin/

十四、admin和xadmin后台管理系统_第1张图片

此时并不能进行登录操作,因为django并没有为用户新建身份信息,而我们自己也没有创建用户。

创建用户并登录

进入Run manage.py Task界面,然后输入下面的指令用于创建管理员:

createsuperuser

根据提示输入用户名、密码、邮箱等信息。注意这里系统对密码强度有要求。

然后在登录界面进行登录,可以看到如下界面:
十四、admin和xadmin后台管理系统_第2张图片

这里暂时只能使用用户名进行登录。

配置admin为中文界面

默认下admin为英文界面看着很不爽,所以可以配置为中文界面。在settings.py文件的最后有这么几行:

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_TZ = True

将这几项改为:

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False

USE_TZ = True会让django在数据库中使用国际时间,从而导致一些时间的问题。使用False来指定使用本地时间。

然后刷新一下admin界面,发现变成中文了:
十四、admin和xadmin后台管理系统_第3张图片

注册user

因为我们重写了diango的user表,所以需要重新注册。

user app下有一个admin.py的文件,这个就是用来注册的,打开文件加入以下代码:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.contrib import admin
from models import UserProfile

class UserProfileAdmin(admin.ModelAdmin):
    pass

admin.site.register(UserProfile, UserProfileAdmin)

UserProfileAdminUserProfile的管理器,命名规则是在其本名后面加上Admin,然后使用admin.site.register的方法来注册。

现在打开浏览器刷新,发现用户信息已经注册进来了。
十四、admin和xadmin后台管理系统_第4张图片

USERS为app的名称

然后点击右边的增加可以增加用户的信息:
十四、admin和xadmin后台管理系统_第5张图片

这里的字段就是USERSmodels.py中定义的字段,不同的字段类型系统会自动生成不同的控件,如时间、上传文件的控件等。

注意,这里的密码虽然是明文填写,但是在后台保存的是密文,且不能反解。

但是这个admin界面还是不够强大,还有一个xadmin更强大,推荐使用。

xadmin


xadmin是基于django admin的一套后台管理系统,它比admin更强大。

安装xadmin

两种方式:

1、pip安装:

pip install xadmin

这里安装可能出现编码报错,可以参照这篇文章:解决pip安装时的编码错误
注意,链接文章中的README文件必须为utf8编码的。

2、源码安装(我选择的方式):
https://github.com/sshwsfc/xadmin中下载源码文件。解压后将目录xadmin复制到项目的根目录下。
十四、admin和xadmin后台管理系统_第6张图片

然后根目录下新建一个目录extra_apps用于存放第三方源码包,并把xadmin拖入其中,同时标记extra_apps为source root。

然后在settings.py中添加下面的一行:

注册xadmin

在settings.py中注册xadmin:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users',
    'courses',
    'operation',
    'organization',
    'xadmin',
    'crispy_forms',
]

然后在urls.py中配置url指向xadmin:

import xadmin

urlpatterns = [
    url(r'^xadmin/', xadmin.site.urls),
]

然后将user app中的admin.py文件中注册的内容注释掉,因为会出现错误。

完成后重启系统,

你可能感兴趣的:(十四、admin和xadmin后台管理系统)