在创建项目时,urls.py中就会默认有一个路径为admin的路径。我们在浏览器页面中输入http://127.0.0.1:8000/admin/ , 会出现一个登录页面。
因为我们还没有创建管理员账号,所以现在这个页面还无法登陆。通过在命令行输入命令python manage.py createsuperuser
, 再在之后的提示中输入账号,邮箱和密码。Django对密码的复杂度有要求,但是在你连续两次输入简单密码后,它会提示你是否跳过密码复杂度检测,你输入y就可以了。
warrenwang$ python manage.py createsuperuser
Username (leave blank to use 'warrenwang'): warren
Email address: wzhisme@163.com
Password:
Password (again):
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: 12345678
Password:
Password (again):
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
(venu) WarrendeMBP:untitled warrenwang$
之后再去settings.py中把语言选项设置为中文(zh-hans)。
现在再去用刚刚注册的管理员账号去登陆管理后台你就会发现页面里只有用户和组可以进行增加和修改。事实上,在该页面下对用户和组进行修改本质上是在对用户表(auth_user)和组表(auth_group)进行修改。所以我们也可以在这个页面对其他的表进行修改。下面我们用后台管理页面对英雄和英雄种类两个表进行修改。
我们在admin.py中把要改的表注册进去。
from django.contrib import admin
from .models import Hero, HeroType
# Register your models here.
admin.site.register(Hero)
admin.site.register(HeroType)
然后我们刷新一下这个后台,就出现了我们刚刚注册的两个表:
现在,我们点击Hero或者HeroType,里面显示的是xx object(x),为了能让他显示对应的内容,我们去models.py中,给每个类增加一个描述。
from django.db import models
# Create your models here.
# 英雄类型表
class HeroType(models.Model):
title = models.CharField(verbose_name='名称', max_length=5)
# 增加描述
def __str__(self):
return self.title
class Hero(models.Model):
name = models.CharField(verbose_name='名字', max_length=5)
gender = models.IntegerField(verbose_name='性别')
age = models.IntegerField(verbose_name='年龄')
ht = models.ForeignKey(to=HeroType, on_delete=models.CASCADE) # 外键
# 增加描述
def __str__(self):
return self.name
完成后页面如下图
在该页面中,我们就可以通过点击“增加 HERO" 来增加英雄了。