Django基础之Admin后台数据管理

Admin后台数据管理

一个站点或者网站,除了给用户浏览及操作外,还需要对后台数据进行管理,比如添加商品,修改商品等等。

Django提供了一个可插拔的后台管理系统------Admin
应用,该系统可以从模型中读取元数据,并提供以模型为中心的界面。Admin后台管理系统不仅让管理员可以便捷地管理、发布、维护网站
的内容,也为开发人员节约了大量开发时间。本章节将对Admin管理系统进行介绍。

学习目标:

掌握进入后台管理系统的方法

掌握模型model的注册方法

熟悉ModelAdmin的选项

了解Admin认证和授权

1.认识Admin后台管理页面

在这里插入图片描述

1.1 进入Admin

1)Django项目的根urls.py文件中默认定义了一个"/admin/"路由,该路由指向Admin

2)启动Django项目,在浏览器中输入"http://127.0.0.1:8000/admin/",页面会跳转到后台管理系统的登录页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tK6dlQqr-1652084698025)(./images/media/image37.png)]{width="6.16650699912511in"
height="3.09375in"}

能不能查询数据库,看看用户名密码是多少?

3)pycharm中 连接sqlite数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T8RFMv4d-1652084698026)(./images/media/image38.png)]{width="3.008984033245844in"
height="1.9855205599300088in"}

在这里插入图片描述

4)数据库迁移

通过数据库迁移,在sqlite数据库中自动生成Admin模块所对应的表,比如auth_user表等

  • 生成迁移文件,即生成sql语句

    python manage.py makemigrations
    
  • 执行迁移文件,即执行sql语句

    python manage.py migrate
    

5)登录后台管理系统需要输入管理员用户名与密码,此时可在命令终端通过"python manage.py createsuperuser"命令创建管理员用户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DkiujUCh-1652084698028)(images/img/image40.png)]{width="5.877199256342957in" height="2.50125in"}

提示:

以上示例中的电子邮件可为空,密码长度至少为8个字符(非强制),输入的密码不会在屏幕显示。创建完成后的管理员用户信息会被存储在auth_user表中

6)登录成功后进入站点管理界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-43nbLHS2-1652084698029)(./images/media/image41.png)]{width="6.154962817147856in"
height="2.2154166666666666in"}

7)管理界面本地化

首次登录之后是英文界面,后台管理是给管理员使用的,英文界面阅读起来就比较困难了,这里可
以将后台管理本地 化。本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化,中国大陆地区使用简体中文,时区使用亚洲/上海时区,注意这里不使用北京时区表示。

两种方式可以将Admin系统的语言本地化

  • 在seetings.py文件中将配置项LANGUAGE_CODE的值设置为"zh-Hans",TIME_ZONE的值设置为"Asia/Shanghai"

  • 在seetings.py文件中配置项MIDDLEWARE(中间件)中添加本地化中间件"django.middleware.locale.LocaleMiddleware"

    如果你只是想要用本地语言来运行Django,并且该语言的语言文件存在,只需要简单地设置 LANGUAGE_CODE 即可。

    如果要让每一个使用者各自指定语言偏好,就需要使用 LocaleMiddleware 。 LocaleMiddleware 使得Django基
    于请求的数据进行语言选择,从而为每一位用户定制内容。 它为每一个用户定制内容。

    使用 LocaleMiddleware 需要在 MIDDLEWARE_CLASSES 设置中增加
    ‘django.middleware.locale.LocaleMiddleware’ 。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xYUKtzcI-1652084698030)(./images/media/image42.png)]{width="6.16244094488189in"
height="2.353853893263342in"}

任务: 进入admin站点管理系统

1.2 使用Admin模块 对数据库中的数据操作

创建goods子应用 python manage.py startapp goods

注册子应用
完善路由配置
1.2.1 创建模型类

在goods子应用的models.py文件中添加模型类

from django.db import models
# Create your models here.
class Goods(models.Model):
        name = models.CharField(max_length=50, verbose_name='商品名')  # 显示的名称 别名
        price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='价格')

迁移

先不忙迁移,下方会调整后再操作
1.2.2 注册模型类

若想使Admin系统中呈现自定义的模型数据,需在应用的admin.py文件中将模型注册到后台系统。

使用装饰器@admin.register()注册模型

# 语法 @admin.register(模型名)
from django.contrib import admin
from .models import Goods
# 装饰器的方式
@admin.register(Goods)
class xxx  # 一般需要操作展示数据或者定制时会使用此方式注册,否者采用后者方式注册

使用admin.site.r

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值