Web 开发 Django 管理工具

news2025/2/25 12:20:35

上次为大家介绍了 Django 的模型,通过模型就可以操作数据库,从而就可以改变页面的展示内容,那问题来了,我们只能通过手动编辑模型文件来配置模型吗?当然不是,Django 为我们提供了强大的工具,可以全自动地根据模型创建后台管理界面。管理界面不是为网站的访问者准备,而是为站点管理者准备的。有了这个功能,站点管理人员方便使用管理系统来对数据进行操作。

运行 Django Admin

首先我们上次我们已经创建了 TestProject 项目,并且我们在这个项目中已经创建了 polls 应用,并在该应用下我们创建了两个 models:Question 和 Choice。代码如下所示:

# polls/models.pyfrom django.db import modelsclass Question(models.Model):    question_text = models.CharField(max_length=200)    pub_date = models.DateTimeField('发布日期')class Choice(models.Model):    question = models.ForeignKey(Question, on_delete=models.CASCADE)    choice_text = models.CharField(max_length=200)    votes = models.IntegerField(default=0)

接下来我们继续这个项目进行修改,并运行 Django Admin 管理工具。

修改配置文件

在项目 TestProject 目录下找到 settings.py 文件 ,打开编辑 INSTALLED_APPS 并增加 django.contrib.admin 等相关项,django.contrib 是一套庞大的功能集,它是 Django 基本代码的组成部分,而 Django 自动管理工具是 django.contrib 的一部分。编辑后结果如下:​​​​​​​

# TestProject/settings.pyINSTALLED_APPS = [    'polls.apps.PollsConfig',    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',]

配置访问路径

在上面目录同级,有个 urls.py 文件,用来配置管理工具的访问路径。当然通常我们在生成项目时会在 urls.py 中自动设置好,我们只需去掉注释即可,请看如下代码:​​​​​​​

# TestProject/settings.pyfrom django.contrib import adminfrom django.urls import path, includeurlpatterns = [    path('polls/', include('polls.urls')),    path('admin/', admin.site.urls),  # 配置 /admin 路径]

好了,一切都配置完成,下面我们就来运行下 Django 管理工具,和以前一样,先通过命令 python manage.py runserver 127.0.0.1:8080 启动本地 server,然后通过访问 URL http://127.0.0.1:8080/admin 就可以跳转到管理工具登陆页面,如下图所示:

图片

登陆

已经看到登陆页面,接下来我们就需要输入用户名密码进行登陆。

初始化超级管理员

Django admin 管理工具的用户需要通过命令来初始化,回到项目根目录,执行 python manage.py createsuperuser,然后根据命令提示完成初始化,操作结果如下图:

图片

初始化

用户名密码初始化完成,我们就可以在登陆页面输入,然后就能登陆到管理工具页面,如下图:

图片

主页

管理应用

在上面登陆成功后,我们在管理页只看到用户和组相关的管理内容,这是管理工具自带的应用,并没有看到之前我们创建的 polls 应用,接下来我们来介绍下用 Django admin 管理工具如何管理我们的应用模型。首先修改 polls 应用下的 admin.py 文件,增加如下代码:​​​​​​​

# polls/admin.pyfrom django.contrib import admin# 引入 polls 应用下的 modelsfrom polls.models import Question,Choice# 注册两个模型admin.site.register(Question)admin.site.register(Choice)

保存后退出,然后刷新主页面,就能看到我们的 polls 应用的模型管理界面了,如下图所示:

图片

然后我们就可以对 polls 应用数据进行操作了,点击 Questions 模型对应的增加按钮,跳转到数据新增页面,并填写一个问题描述以及设置发布日期,如下图:

图片

单击保存后退出到列表页面,并提示操作成功,然后我们用以前我们配置过的查询投票问题的URL http://127.0.0.1:8080/polls/query 进行查询,就会查到新增加的这条投票问题,查询结果如下图所示:

图片

是不是很快捷方便?当然除了新增,还可以对数据进行修改和删除操作,你可以在列表中点击要操作的模型名下对应的记录,然后就跳转到修改和删除页面,如下图所示:

图片

这些操作都比较简单,这里就不再详细介绍,不过需要注意的是:

  1. 这个表单是从问题 Question 模型中自动生成的

  2. 不同的字段类型(日期时间字段 DateTimeField 、字符字段 CharField)会生成对应的 HTML 输入控件。每个类型的字段都知道它们该如何在管理页面里显示自己。

  3. 每个日期时间字段 DateTimeField 都有 JavaScript 写的快捷按钮。日期有转到今天的快捷按钮和一个弹出式日历界面。时间有设为现在的快捷按钮和一个列出常用时间的方便的弹出式列表。

另外页面的底部提供了几个选项:

  • 保存:保存改变,然后返回对象列表。

  • 保存并继续编辑:保存改变,然后重新载入当前对象的修改界面。

  • 保存并新增:保存改变,然后添加一个新的空对象并载入修改界面。

  • 删除:显示一个确认删除页面。

总结

本文为大家介绍了 Django Admin 管理工具,可以通过应用的模型简单配置,生成出对应的后台数据管理页面,通过这个管理页面,我们可以方便的管理数据。当然除了简单模型,它还可以管理复杂模型,并可以自定义表单以及样式等,感兴趣的朋友可以更深入的研究下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/923862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【HTML】基础语法讲解

基础语法 1. HTML 结构1.1 认识HTML标签1.2 HTML 文件基本结构1.3 标签层次结构1.4 快速生成代码框架 2. HTML 常见标签2.1 注释标签2.2 标题标签:h1-h62.3 段落标签:p2.4 <br>换行标签2.5 格式化标签2.6 图片标签&#xff1a;img2.7 超链接标签&#xff1a;a2.8 表格标签…

ETLCloud轻量级数据中台解决方案

引言 随着信息时代的到来&#xff0c;数据已经成为企业的重要资源&#xff0c;如何高效地管理、分析和应用数据变得尤为关键。然而&#xff0c;许多企业在构建数据中台时面临着高昂的成本、复杂的架构和漫长的实施周期等问题。为了解决这些挑战&#xff0c;我们推出了ETLCloud…

Pinia基本概念

Pinia基本概念 面试题&#xff1a;Pinia 相比 Vuex 有什么样的优点&#xff1f;为什么现在官方推荐使用 Pinia &#xff1f; Pinia&#xff0c;是一个 Vue 阵营的新的状态管理库&#xff0c;现在 Vue 官方已经推荐使用 Pinia 来代替 Vuex&#xff0c;或者你可以把 Pinia 看作是…

YOLOV8 win10部署笔记

文章目录 1. 背景2. 部署过程2.1 快速安装 1. 背景 看了B站许多up主的视频&#xff0c;感觉YOLOV8各方面都很优秀&#xff0c;作为新手对它的期待很大&#xff0c;于是想实际跑跑看&#xff0c;边实践&#xff0c;边学习&#xff0c;记录过程。 本篇主要是博主在windows平台上…

人工智能在机器学习中的八大应用领域

文章目录 1. 自然语言处理&#xff08;NLP&#xff09;2. 图像识别与计算机视觉3. 医疗诊断与影像分析4. 金融风险管理5. 预测与推荐系统6. 制造业和物联网7. 能源管理与环境保护8. 决策支持与智能分析结论 &#x1f389;欢迎来到AIGC人工智能专栏~探索人工智能在机器学习中的八…

[管理与领导-45]:IT基层管理者 - 个人管理 - 技术转型管理,从角色认知开始

前言&#xff1a; 在社会中&#xff0c;每个人在不同的场合扮演不同的角色&#xff0c;不同的角色带着不同的面具&#xff0c;不同的角色有的行为方式要求、说话方式要求、说话内容要求&#xff0c;个人的言行方式与不同场合下的角色相匹配&#xff0c;这就得体。每个人都是演…

从十进制到k进制:如何取出每一位数字并求和?

本篇博客中&#xff0c;我会以力扣“1837. K 进制表示下的各位数字总和”为例&#xff0c;讲解如何取出一个数k进制表示的每一位。 经过审题&#xff0c;我们发现这道题目的关键是如何理解“进制”的概念&#xff0c;尤其是如何取出k进制的每一位。我们先来回忆一下如何取出10进…

复习之web服务器--apache

PS&#xff1a;Vim复制小技巧 一、实验环境 两台虚拟机 (nodea,nodeb)配置ip搭建软件仓库关闭selinux [rootftp Desktop]# hostnamectl set-hostname nodea.westos.org [rootftp Desktop]# hostname nodea.westos.org [rootftp Desktop]# ifconfig enp1s0: flags4163<UP,B…

马原——6.对立统一规律

哲学上的矛盾是中性词&#xff1a;强弱&#xff0c;男女&#xff0c;战争与和平———— 完全是一个意思&#xff0c;只是搭配使用有所区别 原理1&#xff1a; 同一性&#xff1a; &#xff08;1&#xff09;相互依存&#xff0c;互为存在&#xff1a;老师和学生&#xff0c;没…

Linux下的系统编程——makefile入门

前言&#xff1a; 或许很多Winodws的程序员都不知道这个东西&#xff0c;因为那些Windows的IDE都为你做了这个工作&#xff0c;但我觉得要作一个好的和professional的程序员&#xff0c;makefile还是要懂。这就好像现在有这么多的HTML的编辑器&#xff0c;但如果你想成为一个专…

STL之vector(讲解迭代器失效,拷贝构造函数等现代版写法)

还是老规矩&#xff0c;直接上代码&#xff1a; #pragma once #include "riterator.hpp" #include <iostream> #include <assert.h> #include <set> #include <map> using namespace std; namespace cc {template<class T>class vect…

智安网络|监控与响应机制:建立有效的数据安全治理,保障数据安全

在当今数字化时代&#xff0c;数据安全治理对于保护组织的敏感信息和用户隐私至关重要。制定一个有效的数据安全治理策略能够明确组织对数据安全的重视&#xff0c;并确保数据得到适当的管理和保护。 1.确定数据安全治理的目标和范围 首先&#xff0c;组织需要明确数据安全治理…

蓝蓝设计ui设计公司作品--泛亚高科-光伏电站控制系统界面设计

泛亚高科(北京)科技有限公司&#xff08;以下简称“泛亚高科”&#xff09;&#xff0c;一个以实时监控、高精度数值计算为基础的科技公司&#xff0c; 自成立以来&#xff0c;组成了以博士、硕士为核心的技术团队&#xff0c;整合了华北电力大学等高校资源&#xff0c;凭借在电…

SQL注入读写文件

文章目录 条件利用SQL注入漏洞读取hosts文件查看文件读写权限安全选项允许导入导出读取hosts文件 利用SQL注入漏洞写入一句话木马&#xff0c;并用蚁剑连接webshell写入文件 条件 SQL注入有直接SQL注入&#xff0c;也有文件读写时的注入&#xff0c;后者的主要 目的在于获取web…

Android 13 - Media框架(6)- NuPlayer::Source

Source 在播放器中起着拉流&#xff08;Streaming&#xff09;和解复用&#xff08;demux&#xff09;的作用&#xff0c;Source 设计的好坏直接影响到播放器的基础功能&#xff0c;我们这一节将会了解 NuPlayer 中的通用 Source&#xff08;GenericSource&#xff09;关注本地…

Java后端面试题——Mysql篇

在Mysql中&#xff0c;如何定位慢查询呢&#xff1f; 表象&#xff1a;页面加载过慢、接口压测响应时间过长&#xff08;超过1s&#xff09; 原因&#xff1a;聚合查询 多表查询 表数据量过大查询 深度分页查询 方案&#xff1a;MySQL自带慢日志 需要在MySQL的配置文件&…

动捕设备之惯性动作捕捉,为何是数字人活动首选的动捕设备?

动捕设备是一种用于捕捉、记录和分析运动的设备&#xff0c;动捕设备可以实时追踪和记录人体的运动轨迹&#xff0c;并将这些动作捕捉数据传输到计算机上&#xff0c;赋予数字人身体姿态。而其中基于惯性动作捕捉技术的动捕设备VDSuit Full&#xff0c;是通过传感器实时测量人体…

【Hello Network】DNS协议 NAT技术 代理服务器

本篇博客简介&#xff1a;介绍DNS协议 NAT技术和代理服务器 网络各协议补充 DNSDNS背景DNS介绍DNS总结域名简介 NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术缺陷NAT和代理服务器 网络协议总结应用层传输层网络层数据链路层 DNS DNS是一整套从域名映射到IP的系统 DNS背景 为…

【产品应用】一体化无刷电机在无泵罐装中的应用

随着科技的不断发展&#xff0c;电动化和智能化成为现代工业发展的两大趋势。在液体灌装领域&#xff0c;无泵罐装技术逐渐受到广泛关注。这种技术取消了传统的泵送系统&#xff0c;通过一体化无刷电机的应用&#xff0c;实现了更为高效、精确的灌装过程。本文将详细介绍一体化…

ICS PA1

ICS PA1 init.shmake 编译加速ISA计算机是个状态机程序是个状态机准备第一个客户程序parse_argsinit_randinit_loginit_meminit_isa load_img剩余的初始化工作运行第一个客户程序调试&#xff1a;零断点TUI 基础设施单步执行打印寄存器状态扫描内存 表达式求值词法分析递归求值…