Django的后台管理站点
Django是一个非常强大的Web框架,自带一个管理站点admin,一般用于管理者自己内部使用,由于页面并没有进行
设计,一般不会将该站点提交给用户,只用于项目未上线之前的管理站点。
启用Admin站点
- Admin站点的URL默认是
127.0.0.1:8000/admin
; - 初次访问admin站点时,需要执行数据库迁移并创建超级用户;
如果没有进行数据库迁移会出现下面这个页面
数据库迁移
python manage.py makemigrations # admin应用是自动创建的,所以默认就是指admin
python manage.py migrate # 数据更新到数据库中
创建超级用户
方法一
使用django指令来创建
python manage.py createsuperuser # 创建超级管理员
方法二
使用默认的用户模型User创建
from django.contrib.auth.models import User
user = User.objects.create(username='admin') # 创建一个叫admin的超级管理员
user.set_password('123456')
user.is_superuser = True # 站点最高权限
# user.is_staff = True # 站点访问权限
user.save()
- 两种方法都是在交互环境下执行;
- 设置管理员密码是不会显示的,两次必须输入一致;
- django会将密码的哈希值保存在数据表中,不会直接保存明文;
- 修改密码时,需要调用
set.password()
方法。
访问Admin站点
- 输入URL
127.0.0.1:8000/admin
- 使用刚才创建的用户进行登录后
在这个页面下可以管理用户、管理用户组以及管理模型(django默认不提供)。
自定义admin站点
- django的管理页面默认时英文的,如果使用中文,则需要修改本地中间件;
在setting.py文件中的MIDDLEWARE参数中注册本地中间件
MIDDLEWARE = [
...
'django.middleware.locale.LocaleMiddleware', # 中文中间件(本地化中间件)
]
- 自定义admin的URL
admin也是一个应用,只需要在根urls.py文件中进行指定url就可以了
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('root/', admin.site.urls),
]