我们都知道无论在测试app还是web页面的时候,都会有一个管理后台去配置这些应用展示的内容,那么我们的Django当然也不例外,今天来认识下Django管理后台
admin管理后台
Django管理后台不仅仅只可以配置应用前端,也可以对数据进行增删改查,最主要的是免费的~
默认设置
Django默认是没有管理后台的,这个需要自己创建,但是我们在创建前,需要在settings.py文件的INSTALLED_APPS中配置admin,当然Django这个也是默认给我们配置好的
# Application definition INSTALLED_APPS = [ 'django.contrib.admin', # 管理站点 'django.contrib.auth', # 认证系统 'django.contrib.contenttypes', # 用于内容类型的框架 'django.contrib.sessions', # 会话框架 'django.contrib.messages', # 消息框架 'django.contrib.staticfiles', # 管理静态文件框架 'Anjing', # Anjing应用
]
并且url.py文件中也会默认创建admin的访问地址
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]
创建管理后台
1、通过输入一下命令来创建admin站点用户
# 创建admin管理后台 python manage.py createsuperuser
首先输入账号名:admin,然后邮箱:821006052@qq.com,再输入密码qweasdzxc,再次确认密码qweasdzxc,注意密码这里是看不到的直接输入即可(有时候密码太过于简单,但是我们也可以强制确认)
创建完成后,我们直接启动Django服务,打开浏览器进入管理员地址:http://127.0.0.1:8000/admin
输入我们刚才创建好的账号密码。点击log in 然后就登录成功了
修改admin密码
如果管理员的密码忘记了怎么办?怎么去修改呢?
方法一:执行以下命令进行操作修改
# 修改管理后台密码 # admin 表示用户名 python manage.py changepassword admin
按照指示完成修改密码(这里修改太简单的好像没办法通过~~)
方法二:
通过终端进入到shell命令中,输入以下命令
python manage.py shell
from django.contrib.auth.models import User u = User.objects.get(username='admin') # 账号名 u.set_password('test1234') # 新密码 u.save()
管理后台显示中文
这里我们会发现管理后台都是英文,我想大多数都会感觉看着不舒服,既然是我们自己的后台,有没有办法设置成中文呢?Django这么强大,肯定有了,我们只需要修改sttings.py配置文件中找到以下代码
其中LANGUAGE_CODE 表示是语言,TIME_ZONE 表示的是时区
# Internationalization # https://docs.djangoproject.com/en/2.2/topics/i18n/ LANGUAGE_CODE = 'en-us' # 语言 TIME_ZONE = 'UTC' # 时区 USE_I18N = True USE_L10N = True USE_TZ = True
我们只需要更改上面两条数据,就可以了
# Internationalization # https://docs.djangoproject.com/en/2.2/topics/i18n/ # LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'zh-Hans' # 语言 # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Shanghai' # 时区
更改完成后,我们重新进入到管理后台中查看,发现已经更改成功了
如果在设置过程中出现报错: You have provided a value for the LANGUAGE_CODE setting that is not in the LANGUAGES setting
如果没有遇到的请跳过继续看
这个报错时在Django3的版本后,如果设置完sttings.py中的LANGUAGE_CODE 和 TIME_ZONE后,启动Django就会报出以上错误
解决方法:
# 需要在sttings.py中增加LANGUAGES配置 from django.utils.translation import gettext_lazy as _ LANGUAGES = [ ('zh-Hans', _('Chinese')), ] LANGUAGE_CODE = 'zh-Hans'
修改完成后,再次启动Django就会发现问题已经解决了
后台显示登录数据
前面安静写了一个登录页面,只要登录后数据信息都会保存在数据库中,这里我想把登录的数据展现到后台管理中。需要在admin.py文件中进行把表名导入即可
文件:admin.py
from django.contrib import admin from Anjing import models # Register your models here. # 导入数据库 admin.site.register(models.User)
文件:model.py from django.db import models # Create your models here. from django.db import models class User(models.Model): username = models.CharField(max_length=32) password = models.CharField(max_length=32)
添加完成后,重新刷新下页面,就可以了(来个动图体会下~~)
如果不确定数据是否添加过来,可以直接打开数据库查看是否显示完成,这里我们可以看到数据是一致的
安静好久没用学习了。最近在家办公事情比较多,后面会继续每天学习2小时。
如果感觉安静写的对您有所帮助,点个关注,持续更新~~哪里有写错的地方,或者不懂的地方,可以下方留言,看到后第一时间回复~~
这个报错时在Django3的版本后,如果设置完sttings.py中的 LANGUAGE_CODE 和 TIME_ZONE 后,启动Django就会报出以上错误