在models中创建了一个名为Article的简单模型,代码如下:
class Article(models.Model):
name = models.CharField(max_length=30)
mycontent = models.TextField()
Django自带一个功能齐全的后台管理系统,通过该后台系统能够使我们方便的操作该数据模型。如下图所示:
为了能够让非开发人员也能够方便的操作后台管理系统同时能够对创建的模型进行增删查改,需要对后台管理系统进行优化,具体包括:汉化、界面美化两部分。下面进入具体的优化步骤。这里推荐使用VS Code进行代码编辑,这样就不用管中文编码问题,否则很多地方需要添加:
# encoding:utf-8
找到项目配置文件夹(与项目同名的子文件夹)下的settings.py文件,修改LANGUAGE_CODE字段如下:
LANGUAGE_CODE = 'zh-Hans'
通过上述修改使得项目整体语言默认为中文汉字。接来下修改时区字段,主要是为了将时间统一为中国时区,具体修改TIME_ZONE字段,改为如下:
TIME_ZONE = 'Asia/Shanghai'
刷新后台管理系统可以看到有些字段已经变成了中文,如下图所示:
这里发现我们创建的Article模型并没有显示中文,这种显示方式对非开发人员来说显得不友好,我们希望Article能够显示成“文章”。另外,在Article右边单击增加按钮,进入数据项编辑页面,如下图所示:
可以看到其中的每个字段显示时也是英文。为了方便,需要对models.py文件中创建的Article模型进行修改:
class Article(models.Model):
name = models.CharField(max_length=30,verbose_name ='姓名')
mycontent = models.TextField(verbose_name ="发布的内容")
class Meta:
verbose_name = '文章'
verbose_name_plural = '文章' #设置复数的显示
通过对每个字段增加verbose_name属性可以对模型中的每个变量定义一个中文别名用于在后台管理系统中显示。同理,通过在模型中增加元数据信息Meta添加对应的类别名可以将Article模型进行重命名。保存所有文件后刷新页面查看后台管理系统的显示效果,这时候可以发现Article已经显示成“文章”,并且当增加Article数据项时每个字段显示的也是中文别名。
接下来,对应用名进行修改,我们实例中创建的应用名为app,因此在后台管理系统中显示的文章目录如下图所示:
我们希望将app的也定义一个别名,改为“文章管理”。具体的,修改app应用下的__init__.py文件,编辑代码如下:
from os import path
from django.apps import AppConfig
VERBOSE_APP_NAME = '文章管理'
def get_current_app_name(file):
return path.dirname(file).replace('\\', '/').split('/')[-1]
class AppVerboseNameConfig(AppConfig):
name = get_current_app_name(__file__)
verbose_name = VERBOSE_APP_NAME
default_app_config = get_current_app_name(__file__) + '.__init__.AppVerboseNameConfig'
保存文件后刷新后台管理系统页面,显示效果如下图所示:
为了加强用户体验,需要对后台管理系统界面进行优化,这里可以采用Bootstrap进行界面美化。但是如果自己从头到尾利用Bootstrap制作界面这本身工作量非常大。幸运的是,已经有现成的第三方依赖包可以非常方便的利用Bootstrap进行后台管理系统界面美化。下面进入具体的操作步骤。
首先安装第三方依赖包:
pip install bootstrap-admin
然后将bootstrap-admin应用添加到项目中,打开项目配置文件夹下的settings.py文件,找到INSTALLED_APPS字段,添加应用:
INSTALLED_APPS = [
'bootstrap_admin', #添加应用
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app',
]
保存后,启动项目,访问后台管理系统。登录界面如下:
输入账户进入系统后主界面如下:
界面已经转换为Bootstrap这种简洁、漂亮的风格。
接下来需要对该模板进行一点改写,使其更加符合我们的需求。
首先修改主界面logo图标,在python安装目录下按照下述目录进行寻找:Lib\site-packages\bootstrap_admin\static\bootstrap_admin\img
该img文件夹中的logo-140x60.png即为后台管理系统主界面logo,可以采用photoshop对其进行修改,如下图所示:
替换完成后刷新页面即可看到效果。接下来修改Lib\site-packages\bootstrap_admin\templates\admin目录下的login.html文件,首先删掉29~32行:
然后找到
{{ site_header|default:_('Django administration') }} - {{ title }}
替换为:
后台管理系统 - {{ title }}
保存修改后刷新页面,推出系统进入后台登录页面,如下图所示:
界面主体部分主要修改:Lib\site-packages\bootstrap_admin\templates\admin目录下的index.html文件,这里不再深入讲解。
通过以上步骤,可以在最短时间内制作出一个让用户满意的后台管理系统。