3. admin后台

阅读: 9623


在我们开发的初期,没有真实的用户数据,也没有完整的测试环境,为了测试和开发的方便,通常我们会频繁地使用Django给我们提供的Admin后台管理界面,创建测试用例,观察模型效果等等。

一、 在admin中注册模型

admin后台本质上是Django给我们提供的一个app,默认情况下,它已经在settings中注册了,如下所示的第一行!同样的还有session会话框架,后面我们会使用的。

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'login',
]

进入login/admin.py文件,代码如下:

from django.contrib import admin

# Register your models here.

from . import models

admin.site.register(models.User)

暂时简单点,直接注册就好了。

二、创建超级管理员

Django的admin后台拥有完整的较为安全的用户认证和授权机制,防护等级还算可以。

要进入该后台,需要创建超级管理员,该管理员和我们先前创建的User用户不是一个概念,要注意区别对待。

同样在Pycharm的终端中,执行下面的命令:

python manage.py createsuperuser

用户名、邮箱和密码请自行设定,但一定不要忘记。(密码需要一定强度,否则通过不了。)

(mysite_env) F:\Django_course\mysite>python manage.py createsuperuser
Username (leave blank to use 'administrator'): admin
Email address: admin@admin.com
Password:
Password (again):
Superuser created successfully.

三、 启动开发服务器

创建好超级管理员后,就可以启动我们的开发服务器了,然后在浏览器中访问http://127.0.0.1:8000/admin/地址,可以看到如下的登录界面:

8.png-7.4kB

输入我们先前创建的超级管理员账户,进入管理界面:

9.png-20.6kB

注意,图中下方的认证和授权是admin应用自身的账户管理,上面的LOGIN栏目才是我们自己创建的login应用所对应的User模型。

点击Login栏目中的用户链接,进入用户列表界面,发现是空的,因为我们当前没有任何用户。点击右上方的增加用户按钮,我们创建几个测试用户试试:

通过输入不同的数据,我们看到Email会有地址合法性检查,性别有个选择框,非常的人性化。

10.png-16.2kB

但是,实际上这里还有点小问题,那就是密码相关。密码不能保存为明文,这个问题我们后面再解决;其次,不可以这么随意的修改和设置密码,为了展示的方便性,我们先这样。

这里我随便创建了三个测试账号,如下所示:

11.png-15.2kB

admin的使用和配置博大精深,但在本实战项目里,我们暂时把它当做一个数据库管理后台使用。



评论总数: 6



user_image
登陆后台报错

能够登陆成功,也可以成功执行各种操作,但会在pycharm控制台报错 self.status.split(' ',1)[0], self.bytes_sent AttributeError: 'NoneType' object has no attribute 'split'

user_image

name最好用字母。

user_image
求解

为什么创建了三个用户,名字都是User object ,根本不是我自己创建的名字

user_image
User object是默认的名字

因为你没有在User模型中定义__str__方法

user_image
没有LOGIN的用户栏

为什么我站点管理里面没有LOGIN的用户啊,我都注册了啊

user_image
。。

在admin.py里注册了吗?