最新消息:欢迎光临 魔力 • Python!大家可以点开导航菜单中的【学习目录】,这个目录类似图书目录,更加方便学习!

Django2:Web项目开发入门笔记(12)

Django教程 小楼一夜听春语 9340浏览 0评论

这一篇教程,我们一起来了解Django自带的后台。

Django自带的后台功能已经比较完善,我们要了解的主要是如何使用它。

一、登录

当我们启动开发服务器,就可以通过“http://127.0.0.1:端口号/admin”进行访问了。

此时,会显示登录界面。

我猜你不知道用户名和密码,对吧?

嘿嘿,因为还没有创建管理员和密码。

接下来我们进行创建。

二、创建管理员

运行“manage.py”任务窗口,输入命令:createsuperuser(回车)

此时,就会要求输入用户名和两遍相同的密码,至于邮箱地址,不想输入的话,可以回车跳过。

如果设置的密码想修改的话,可以输入命令:changepassword 用户名(回车)

就可以进行密码的修改了。

当我们完成超级用户(管理员)的创建,再次回到登录界面,就可以进行登录了。

打开之后,觉得很迷茫对吧?

不如,我们先把页面改成中文的看一看。

三、修改后台语言

打开文件“settings.py”,拉到末尾,我们会看到一项设置。

LANGUAGE_CODE = 'en-us'

Django支持很多种语言,默认语言是美国英语。

我们可以打开Django库的路径:项目文件夹\venv\Lib\site-packages\django\contrib\admin\locale

这个路径下,每一个文件夹的名称代表了一种语言。

如果需要改成中文的话,我们把“LANGUAGE_CODE”的值改成“zh-Hans”,也就是中文汉字简体,“s”表示简体。

提示:繁体中文是“zh-Hant”,也就是中文汉字繁体,“t”表示Traditional。

完成这项设置的修改之后,我们就能够看到中文界面了。

图中的“认证和授权”中,能够对用户和组进行管理。

用户:包括用户的创建、删除、信息修改、权限分配等。

组:创建不同的组别,给予相应的权限,就能够将用户划分到不同的组中,拥有相应的权限,适合大量用户的权限管理。

四、添加数据

一般来说,数据库中的全部或部分数据是需要在后台进行管理的。

但是,当前后台中,并没有这些数据。

以我们之前已经创建好的模型“Goods”举例,如何把通过这个模型创建的数据表中的数据呈现在后台呢?

操作非常简单!

打开文件“admin.py”,在里面我们导入模型类“Goods”,并加入一行代码。

示例代码:

from django.contrib import admin
from MySite.models import Goods

admin.site.register(Goods)

这时,我们刷新后台页面看一看。

此时,在页面中我们看到了Web应用的名称和模型中类的名称,不过类的名称后面多了个s,表示这里面可能包含多个数据对象。

不过,现在显示的站点名称和表名称都是英文,我们也可以给改成中文。

五、修改站点名称、表名称以及数据对象名称为中文

首先,打开文件“apps.py”,当前只有一行定义“name”变量的代码,我们在下方再添加一行代码。

示例代码:

verbose_name='我的商店'

这句代码就能够让站点名称显示为指定的名称。

然后,再打开模型文件“models.py”,在“Goods”类中,创建一个“Meta”类,并写入一行代码。

示例代码:

class Goods(models.Model):
    ...省略已有代码...
    class Meta:
        verbose_name_plural = "商品管理"

再次刷新页面,就可以看到我们要的结果了。

接下来,我们点击“商品管理”这个表名称看一看。

在打开的页面中,还有英文的“goods”或“GOODS”。

这些也需要改过来的话,我们在刚才的“meta”类中,再加入一行代码。

示例代码:

verbose_name = "商品"

页面刷新后,我们能够看到除了下方列表,中的“Goods object”,其余的“Goods”都变成了“商品”。

那么,列表中的“Goods object”怎么处理呢?

列表就是之前所说的多个数据对象的列表。

这些“Goods object”都是数据行标题,以Goods object(商品名称)的形式呈现。

这样显示数据行标题不是很友好,我们应该比较期望这里是一条商品信息的数据内容。

解决这个问题,我们可以在“Goods”类中,再添加一段代码。

示例代码:

def __str__(self):
    return self.goods_name

这一段代码的意思让数据行标题显示为商品名称。

但是,只有商品名称还不够,如果能够把其他的商品信息也显示出来就更好了。

六、显示更多数据字段

如果想显示更多的数据字段,我们需要打开文件“admin.py”,创建一个新的类。

示例代码:

class GoodsAdmin(admin.ModelAdmin):
    list_display = ('goods_name','goods_number','goods_price','goods_sales')

变量“list_display ”就是用来定义数据列表中显示哪些的字段。

然后,我们再将之前的语句:

admin.site.register(Goods)

修改为:

admin.site.register(Goods,GoodsAdmin)

也就是将新增的类进行注册。

刷新页面,我们能够看到更多的数据字段了。

但是,新的问题又来了,列表中列名都是英文。

七、修改数据表的列名为中文。

这个很简单,我们把文件“models.py”中“Goods”类的每个变量赋值进行修改,在字段类型的参数中,第一个参数位置添加中文名称。

示例代码:

goods_name = models.CharField('商品名称', max_length=30, primary_key=True)
goods_number = models.IntegerField('数量')
goods_price = models.FloatField('价格')
goods_sales = models.IntegerField('销量', default=0)

经过这样的修改,就能看到数据列表中所有的列名都变成了中文名称。

八、数据对象列表中添加非数据字段内容

假如,我们想在上方的数据表中,再添加一列内容,是销量的金额可不可以呢?

当然可以!

我们在Goods类中添加新的代码。

示例代码:

def sales_volume(self):
    return self.goods_sales * self.goods_price

sales_volume.short_description = '销售额'
goods_amount = property(sales_volume)

先通过一个方法“sales_volume”计算销售额,再将这个方法转为类的属性。

这个属性的名称可以通过“sales_volume.short_description”进行定义。

然后,我们在文件“admin.py”中将“list_display”修改为:

list_display = ('goods_name','goods_number','goods_price','goods_sales','goods_amount')

完成上面的操作之后,我们刷新页面,就能够在列表中看到新增的“销售额”这一列了。

提示:之前的商品销量都是“0”,可以修改之后查看销售额的变化。

以上就是关于Django后台的使用介绍。

本节练习源代码:【点此下载

转载请注明:魔力Python » Django2:Web项目开发入门笔记(12)

头像
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网站 (可选)

网友最新评论 (6)

  1. 头像
    写的很详细,挺棒的! :mrgreen:
    走路爱走神7年前 (2018-05-24)回复
  2. 头像
    楼主老师,之前的 ajax添加商品,goods_list.html怎么加到管理页面里去呢?
    python小舟6年前 (2019-01-20)回复
  3. 头像
    提示:繁体中文是“zh-Hant”,也就是中文汉字繁体,“t”表示traditional。传统的,就是我们说的繁体字
    谢谢小楼老师6年前 (2019-01-30)回复
  4. 头像
    真心感谢 写的很详细
    timelomo6年前 (2019-05-17)回复
  5. 头像
    后端管理界面能不能自定义呢
    chencgl9995年前 (2020-03-30)回复
  6. 头像
    内容很棒,超详细,大赞!!!
    chencgl9995年前 (2020-03-30)回复