Django之admin后台页面功能详解

这篇具有很好参考价值的文章主要介绍了Django之admin后台页面功能详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一)对于admin的初了解

1.简介

Django是一种流行的Python Web开发框架,它提供了一个功能强大且易于使用的admin界面,用于管理网站的后台数据和功能。Django的admin界面是自动生成的,它根据你的模型类自动创建表单和列表视图。你只需将模型类注册到admin界面,就可以轻松地管理和操作数据库中的数据。
admin界面提供了各种功能,包括:

  1. 列表视图:以表格形式展示数据库中的数据,支持分页、搜索和排序功能,方便快速浏览和筛选数据。
  2. 表单视图:用于创建、编辑和删除数据库中的数据。Django的表单视图提供了丰富的表单字段类型,例如文本框、下拉列表、日期选择等,同时支持数据验证和错误提示。
  3. 权限控制:admin界面支持基于角色的权限控制,你可以定义不同的用户角色,并为每个角色分配不同的权限,从而限制用户对数据和功能的访问权限。
  4. 自定义界面:Django的admin界面可以通过自定义模板和样式进行个性化定制,你可以根据自己的需求修改界面的布局、颜色和图标等。
  5. 插件扩展:Django的admin界面支持插件扩展,你可以通过安装第三方插件来增加额外的功能和特性,例如图表展示、导入导出数据等。

总的来说,Django的admin界面为开发者提供了一个方便、快速和安全地管理和操作后台数据的工具,极大地提高了开发效率和用户体验。无论是小型项目还是大型企业应用,admin界面都是一个不可或缺的组成部分。

2.admin的位置

在我们创建了Django的项目后,我们在最原始的urls.py中就可以看见关于admin的路径:
django admin,Django架构,django,数据库,sqlite
如果要访问admin后台我们只需要输入以下网址:

http://127.0.0.1:8000/admin/

页面会自动跳转,读者也可根据自身的需求去改变urls.py中的路径。

二)admin的相关功能

1.创建超级用户

在创建超级用户前我们需要保证项目已经创建成功,连接了数据库并且成功执行力数据库的生成和迁移命令。
在启动Django项目后我们首次进入admin后台管理界面是需要用户名与密码的创建,我们需要在命令终端通过以下命令去创建超级用户,即管理员:

python manage.py createsuperuser

django admin,Django架构,django,数据库,sqlite
注意,这里的Password(密码)两次需要输入相同密码,长度至少八个字符(非强制要求),输入的密码不会显现。创建好的超级用户我们可以在auth_user表中看见:
django admin,Django架构,django,数据库,sqlite

2.管理界面的本地化

在初次进入admin后台界面的时候我们会发现页面全是英文,有太多的操作不便,我们可以操作控制将admin界面的语言本地化。
django admin,Django架构,django,数据库,sqlite
这里有两种方式都可以执行:

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

django admin,Django架构,django,数据库,sqlite

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

django admin,Django架构,django,数据库,sqlite
两种方式各有千秋,如果只是想要用本地语言来运行Django,并且该语言的语言文件存在,只需要第一种方式即可。如果要让每一个使用者各自指定语言偏好,就需要使用第二种方式。LocaleMiddleware 使得Django基于请求的数据进行语言选择,从而为每一位用户定制内容。它为每一个用户定制内容。
django admin,Django架构,django,数据库,sqlite

3.有关模型类

a.模型类的创建与注册

模型类的创建在前文《Django之ORM操作初了解》已经讲过,感兴趣的读者可以翻看前文,这里将给出一个例子给大家参考:

#借阅人模型
class taker(models.Model):
      taker_name = models.CharField(verbose_name="借阅人姓名",max_length=20,unique=True)
      taker_number = models.IntegerField(verbose_name="借阅人ID",default='0000')
      taker_identity = models.CharField(verbose_name="借阅人身份",choices=(("0","学生"),("1","教师")),max_length=20,default="0")

我们如果想要将其在admin后台显现处理啊,就需要在应用的admin.py文件中将其注册到后台,在这里同样也有两个方式将其注册:

  • 装饰器:
from django.contrib import admin
from .models import Goods

@admin.register(Goods)
class xxx

一般需要操作展示数据或者定制时会使用此方式注册,不是很好理解是吧,给大家一个具体的例子:

@admin.register(taker)
class TakerAdmin(ImportExportModelAdmin):
    list_display = ("taker_name","taker_number","taker_identity")
    search_fields = ("taker_name","taker_number")

这里的xxx也就是我们在models.py中创建的类的名字,而之后如果我们想要控制这个类展现怎样的数据和其他功能的自定义我们就需要用装饰器的方式。

  • 使用admin.site.register()注册模型
# 语法 admin.site.register(模型名)
admin.site.register(xxxx)

同样,这里的xxxx也是我们在models.py中创建的类的名字,如果我们没有什么需要自定义的就只需要用这个方式注册模型。
注册了之后我们就可以在admin界面上查看到数据:
django admin,Django架构,django,数据库,sqlite

b.修改展示的名称

django admin,Django架构,django,数据库,sqlite
这样的模型名称与应用名称很不好让人理解,我们可以根据实际的情况修改。
我们先修改应用的名称,我们需要在应用的init.py文件中添加如下代码:

default_app_config = 'xxxx.apps.xxxxConfig'

这里的xxxx是应用的名称,apps是应用的包路径,而xxxxConfig是应用的配置类。
然后我们在应用的apps.py文件中使用verbose_name设置应用的名称:

from django.apps import AppConfig
class xxxxConfig(AppConfig):
	name = 'xxxx'
	verbose_name = '商品信息'

这里的xxxx意义相信大家都知道,而verbose_name中的就是我们需要展示出来的名称。
同样,修改模型名称也很简单,我们只需要在models.py文件中操作,如下:

from django.db import models
# Create your models here.
class xxxx(models.Model):
    ...
	class Meta:
		verbose_name = '商品' # 模型名称(单数)
		verbose_name_plural = verbose_name # 模型名称(复数)

请注意Meta的缩进,其被我们的模型类所包括,在这使用verbose_name等命令去控制显示的名称:
django admin,Django架构,django,数据库,sqlite

c.数据的增删查改

我们的admin页面是自己携带了增删查改的界面,我们只需要去跟着操作就行,例如增加数据:
django admin,Django架构,django,数据库,sqlite
这里的操作数据库会自动同步,完全不用担心是否会造成数据混乱的问题。

d.定制列表页数据

前面我提到过,可以自定义展示的数据与功能,这里我简单给大家一些选项:

代码 功能
list_display 展示的数据字段
search_fields 搜索的数据字段
list_filter 过滤的数据字段
ordering 排序的数据字段
exclude 不显示的数据字段

那么如何使用呢,只需要在应用的admin.py文件中进行:

@admin.register(book)
class BookAdmin(admin.ModelAdmin):
    # 页面上展示的内容
    list_display = ("book_name","author", "book_price")

当然,也可用另外一个方式:

class BookAdmin(admin.ModelAdmin):
        list_display = ('id','name', 'price', 'stock', 'sales', 'create_time', 'update_time')


admin.site.register(Book,BookAdmin)

当然,我个人较为推荐第一种方式,从我主观的角度来看较为清晰代码的解构。
django admin,Django架构,django,数据库,sqlite

e.定制编辑页数据

如果数据的展示我们可以自定义功能,那么编辑数据的编辑页我们自然也可控制,这里也给大家举一些例子:

代码 功能
fields 显示的数据字段;
支持以二维元组形式设置字段分栏显示,在fileds中一个元组表示一栏数据
fieldsets 对可编辑的数据字段分组;
不可与fields一起用
readonly_fields 只读的数据字段
save_on_top 设置在这编辑页上面是否展现保存、删除等按钮,默认为False,不显示

f.自定义字段

自定义字段指与模型相关,但并不包含在模型中的字段,这种字段是定义在应用的admin.py文件中的一些函数,这些函数会将模型实例作为参数。也就是说假如我们类里设置了商品的单价与销售的数量,但是我们没有设置其销售额,该如何得到?利用自定义字段就可以解决:

def sales_volume(g):
     total = g.price * g.sales
     return f'{g.name}销售额为:{total}'
   
   
sales_volume.short_description = '商品销售额' # 设置字段描述


@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
     list_display = ('name', 'price', 'stock', 'sales', 'create_time', 'update_time',sales_volume)

4.认证与授权

Admin提供管理用户与组、用户与组权限的功能,使用超级用户登录后台管理系统后可以对用户或组进行增加,或变更用户与组的权限。
django admin,Django架构,django,数据库,sqlite
django admin,Django架构,django,数据库,sqlite文章来源地址https://www.toymoban.com/news/detail-858455.html

到了这里,关于Django之admin后台页面功能详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django笔记三十五之admin后台界面介绍

    本文首发于公众号:Hunter后端 原文链接:Django笔记三十五之admin后台界面介绍 这一篇介绍一下 Django 的后台界面使用。 Django 自带了一套后台管理界面,可用于我们直接操作数据库数据,本篇笔记目录如下: 创建后台账号以及登录操作 注册后台显示的数据表 列表字段的显示

    2024年02月02日
    浏览(48)
  • django admin页面美化

    美化 Django Admin 页面可以通过多种方式实现,从简单的 CSS 样式调整到完全自定义模板。以下是一些建议和步骤来美化 Django Admin 页面: 1. 使用 CSS 覆盖默认样式 这是最简单的方法,你可以通过添加自定义 CSS 文件来覆盖 Django Admin 的默认样式。 步骤: 在你的 Django 项目中创建

    2024年02月22日
    浏览(39)
  • django admin后台中进行多个手机号解密消耗时间对比

    需求: 1 手机号在数据库中是使用rsa方式加密存储,后台查看中需要转换为明文,因为需要解密多个手机号,所以在后台查看中消耗时间3秒,希望通过多线程,多进程,异步方式来缩短时间 相关注意点: Django遵循单请求模型,其中每个请求都在单个线程中处理。在Django的请

    2024年01月21日
    浏览(34)
  • windows解决python安装django架构没有django-admin命令

    目录 一.尝试安装与配置 1.直接pip命令安装 2.用pycharm测试 3.官网下包安装 二.解决 1.找到django安装的路径 2.配置系统变量 3.测试创建项目 3.1.执行访问页面 3.2.解决 3.3.继续测试 4.pycharm打开     新建项目测试    注:发现没有django这个框架选项,后面发现这个功能只有专业版才

    2024年02月06日
    浏览(50)
  • 使用django-admin来做erp,是否需要使用缓存数据库

    需求: 结论:仅仅使用django admin,不需要使用缓存 1:在django admin后台中禁止一次性下载超过100条带有手机号码字段的数据,从而限制转换解密时间在5秒钟内 2:非要缩短时间,让甲方加价钱 展开讨论 首先,Django Admin是Django框架的一个组成部分,用于创建网站的管理后台。它

    2024年01月25日
    浏览(53)
  • 43--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-课程详情页面、搜索页面以及后台设计

    1.视频播放功能 下载第三方插件:vue-video-player 使用步骤: 第一步: cnpm install vue-video-player 第二步:在main.js中引入

    2024年02月09日
    浏览(50)
  • 用前端框架Bootstrap的AdminLTE模板和Django实现后台首页的页面

    承接博文 用前端框架Bootstrap和Django实现用户注册页面 继续开发实现 后台首页的页面。 以下需要的四个文件夹及里面的文件百度网盘下载链接: https://pan.baidu.com/s/1QYpjOfSBJPmjmVuFZdSgFQ?pwd=o9ta 下载 AdminLTE-3.1.0-rc 并解压缩 把文件夹 other 和 pages 复制到 “E:Python_projectP_001myshop-t

    2024年02月06日
    浏览(43)
  • 使用Django自带的后台管理系统进行数据库管理的实例

    Django自带的后台管理系统主要用来对数据库进行操作和管理。它是Django框架的一个强大功能,可以让你快速创建一个管理界面,用于管理你的应用程序的数据模型。 使用Django后台管理系统,你可以轻松地进行以下操作: 数据库管理:你可以查看、添加、编辑和删除数据库中

    2024年02月15日
    浏览(55)
  • django后台管理中导出Excel表格与其它表格数据等功能

    需求,在django admin后台中添加导出excel表格功能 需求人群:财务,董事 该插件允许导出文件的格式为:xls,xlsx,csv,tsv,ods,json,yaml,html 执行该命令将会安装以下插件 ![[Pasted image 20240119043040.png]] ![[Pasted image 20240119043224.png]] 3在订单models.py相同路径中创建resources.py文件 ![[Pasted image 2

    2024年01月25日
    浏览(52)
  • 快速搭建Python(Django)+Vue环境并实现页面登录注册功能

    选择一个要存放代码位置,使用cmd进入该位置,然后输入 npm init vue@lastest 创建vue项目 然后输入项目名称,其余都选择NO 创建好项目之后,使用cd命令进入创建好项目的目录 执行 npm install 命令即可创建好一个vue项目 vue项目的启动命令为 npm run dev 使用VsCode打开创建的项目,删

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包