当前位置: 首页 > news >正文

Web 开发 Django 管理工具

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

相关文章:

Web 开发 Django 管理工具

上次为大家介绍了 Django 的模型,通过模型就可以操作数据库,从而就可以改变页面的展示内容,那问题来了,我们只能通过手动编辑模型文件来配置模型吗?当然不是,Django 为我们提供了强大的工具,可以…...

分类算法的评价指标

分类算法的评价指标 查准率、查全率、准确率、F1分数: 查准率(Precision): 模型预测为正例的样本中实际未正的比例。它关注的点在:预测为正例样本的准确性。 查全率(recall): 模型…...

智能工厂移动式作业轻薄加固三防平板数据采集终端

在这个高度自动化和数字化的环境中,数据采集变得尤为重要。为了满足这个需求,工业三防平板数据采集终端应运而生。工业三防平板数据采集终端采用了轻量级高强度镁合金材质,这使得它在保持轻薄的同时具有更强的坚固性。这种材质还具有耐磨防损…...

Python Flask token身份认证

首先安装依赖: pip install flask-jwt-extended 然后在主应用中(项目入口文件)加入以下代码: from flask import Flask from flask_jwt_extended import JWTManager #引入依赖 app Flask(__name__) app.config[JWT_SECRET_KEY…...

docker安装rabbitMQ

目录 1、拉取镜像 2、构造镜像 3、开启插件 4、开启安全组 5、访问 ui界面访问不到解决步骤 1、拉取镜像 docker pull rabbitmq 这里拉取的是最新镜像,若要指定版本可在后加上版本号即可;比如 docker pull rabbitmq:3.7.14 2、构造镜像 方式一:交…...

PDF如何转ppt?PDF转ppt的方法

PDF是一种广泛应用于文档传输和存储的格式,然而,在某些情况下,我们可能需要将PDF文件转换为PPT,以便更加灵活地编辑和展示内容。那么,PDF如何转ppt呢?在本文中,我们将介绍几种常用的方法和工具&#xff0c…...

设计模式(8)外观模式

一、 1、使用背景:降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口。 2、定义: 为子系统中的一组接口定义一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。完美地体现…...

Django(7)-项目实战-发布会管理

登录功能 模板页面 sign/templates/index.html <!DOCTYPE html> <html> <head><title>Login Page</title> </head> <body><h1>发布会管理</h1><form action"/login/" method"post"><la…...

Hbase-技术文档-java.net.UnknownHostException: 不知道这样的主机。 (e64682f1b276)

问题描述&#xff1a; 在使用spring-boot操作habse的时候&#xff0c;在对habse进行操作的时候出现这个问题。。 报错信息如下&#xff1a; 第一段报错&#xff1a; 第二段报错&#xff1a; java.net.UnknownHostException: e64682f1b276 问题定位解读&#xff1a; 错误 ja…...

OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法

最近在windows下面用cmake编译OpenCV的项目代码,但是一直碰到找不到mutex的问题&#xff0c;百思不得其解, Executing task: g -g -o bin/debug.exe src/main.cppC:\MinGW\lib\opencv\build\include/opencv2/core/utility.hpp:697:14: error: recursive_mutex in namespace st…...

华为质量管理:从产品质量到用户体验,Kano模型成为新方向

目录 前言 华为质量管理的四个阶段 基于 IPD 如何做质量管理呢&#xff1f; CSDN相关课程 作者简介 前言 今天继续来谈谈华为流程体系中的质量管理过程。 通常来说质量具体是指产品的质量&#xff0c;也就是产品的使用价值及其属性。 产品再细分的话可以分为三个层次&a…...

正则表达式学习笔记

正则表达式学习笔记 常用正则表达式 1、匹配字母 Pattern patternPattern.compile("[a-zA-Z]"); 2、匹配数字 Pattern patternPattern.compile("[0-9]"); 3、匹配字母和数字 Pattern patternPattern.compile("([0-9])|([a-zA-Z])")…...

构建数据可视化(基于Echarts,python)

构建数据可视化&#xff08;基于Echarts,python) 本文目录&#xff1a; 一、写在前面的题外话 二、数据可视化概念 三、用Python matplotlib库绘制数据可视化图 四、基于Echarts构建大数据可视化 4.1、安装echarts.js 4.2、数据可视化折线图制作 4.2.1、基础折线图 4.2…...

【2023最新版】R安装(直接+Anaconda)及使用(Pycharm配置R)教程

目录 一、R语言 1. R官网 2. R介绍 二、直接安装R 1. 下载 2. 安装 三、Pycharm使用R 1. 安装Pycharm 2. R Language for IntelliJ插件 3. R设置 报错 4. R软件包 安装 加载 查看已安装的包 四、使用Anaconda创建R语言虚拟环境 1. 安装Anaconda 2. 创建R语言…...

opencv 案例实战02-停车场车牌识别SVM模型训练及验证

1. 整个识别的流程图&#xff1a; 2. 车牌定位中分割流程图&#xff1a; 三、车牌识别中字符分割流程图&#xff1a; 1.准备数据集 下载车牌相关字符样本用于训练和测试&#xff0c;本文使用14个汉字样本和34个数字跟字母样本&#xff0c;每个字符样本数为40&#xff0c;样本尺…...

Vue实例挂载的过程

一、思考 我们都听过知其然知其所以然这句话 那么不知道大家是否思考过new Vue()这个过程中究竟做了些什么&#xff1f; 过程中是如何完成数据的绑定&#xff0c;又是如何将数据渲染到视图的等等 二、分析 首先找到vue的构造函数 源码位置&#xff1a;src\core\instance\…...

dvwa xss通关

反射型XSS通关 low难度 选择难度&#xff1a; 直接用下面JS代码尝试&#xff1a; <script>alert(/xss/)</script>通关成功&#xff1a; medium难度 直接下面代码尝试后失败 <script>alert(/xss/)</script>发现这段代码直接被输出&#xff1a; 尝试…...

AD如何进行汉化

AD如何进行汉化 通过安装好AD后&#xff0c;默认都是英文界面模式&#xff0c;如果想汉化为中文模式&#xff0c;需要点击“DXP”->“参数选择”&#xff0c;打开界面如下&#xff1a; 然后将上图“本地化”下面的方框勾选上&#xff0c;点击“应用”&#xff0c;“确定”…...

【JUC基础】JUC入门基础

目录 什么是JUC线程和进程锁传统的 synchronizedLock 锁Synchronized 与 Lock 的区别 生产者和消费者问题Synchronized 版Lock版Condition 的优势&#xff1a;精准通知和唤醒线程 8 锁现象问题1&#xff1a;两个同步方法&#xff0c;先执行发短信还是打电话&#xff1f;问题2&a…...

自然语言处理: 第十章GPT的API使用

理论基础 现在的以GPT为首的生成类模型&#xff0c;它拥有对话的能力&#xff0c;它会根据你输入的暗示(prompt)或者指令(instruct)生成对应的回答。所以&#xff0c;不同的输入会导致不同的输出(其实由于chatgpt最终生成的答案是beam_search 以及随机采样的机制&#xff0c;所…...

docker使用harbor进行镜像仓库管理演示以及部分报错解决

目录 一.安装harbor和docker-compose 1.下载 2.将该文件修改为这样&#xff0c;修改好自己的hostname和port&#xff0c;后文的用户和密码可以不改也可以改&#xff0c;用于登录 3.安装 二.修改daemon.json文件和/etc/hosts文件 三.使用powershell作windows端域名映射 四…...

【精算研究01/10】 计量经济学的性质和范围

一、说明 计量经济学是使用统计方法来发展理论或测试经济学或金融学中的现有假设。计量经济学依赖于回归模型和零假设检验等技术。计量经济学也可以用来预测未来的经济或金融趋势。 图片来源&#xff1a;https://marketbusinessnews.com 二、 计量经济之简介 计量经济学是对经济…...

【python知识】用 Tkinter实现“剪刀-石头-布”和“弹球游戏 ”

一、提要 Tkinter是一个Python内置模块&#xff0c;它提供了一个简单易用的界面来创建GUI。 在实现一些动态的画面、如游戏还是需要一些创新性思维的。在本文中&#xff0c;我们将使用 Tkinter 探索 Python GUI 编程。我们将介绍 Tkinter 的基础知识&#xff0c;并演示如何使用…...

Android 绘制之文字测量

drawText() 绘制文字 绘制进度条:paint.strokeCap Paint.CAP.RONUD 线条两边样式 设置文字字体:paint.typeFace Resources.Compat.getFont(context,font) 设置加粗 paint.isFakeBoldText 设置居中: paint.setTextAlign Paint.Align.CENTER //居中, 并不是真正的居中 往…...

基于AVR128单片机智能传送装置

一、系统方案 1、板载可变电阻&#xff08;电位器&#xff09;R29的电压作为处理器ATmega128的模数转换模块中单端ADC0的模拟信号输入&#xff08;跳线JP13短接&#xff09;。 2、调节电位器&#xff0c;将改变AD转换接口ADC0的模拟信号输入&#xff0c;由处理器完成ADC0的A/D转…...

Nexus私有仓库+IDEA配置远程推送

目录 一、docker安装nexus本地私服&#xff0c;Idea通过maven配置deploy本地jar包&#xff08;简单&#xff09; 二、docker push镜像到第三方nexus远程私服&#xff08;shell命令操作&#xff09; 三、springboot通过maven插件自动生成docker镜像并push到nexus私服&#xf…...

idea2023项目上传到gitee

1、按照gitee插件 File——>Settings plugins——>Marketplace下面搜索gitee,然后按照gitee插件 2、上传项目 VCS_——>Share Project on Gitee 如果第一次没登录的需要先登录&#xff0c;登录完后就可以上传了...

【golang】派生数据类型---指针 标识符、关键字等

1、指针 对比C/C中的指针&#xff0c;go语言中的指针显得极为简洁&#xff0c;只是简单的获取某个空间的地址 或者 根据指针变量中的内容 获取对应存储空间的内容等操作。 具体示例如下&#xff1a; go中使用指针需要注意的点&#xff1a; 可以通过指针改变它所指向的内存空…...

深度学习技术

深度学习是什么&#xff1f; 深度学习&#xff0c;英文名为Deep Learning&#xff0c;其实就是机器学习的一种高级形式。它的灵感来源于人脑神经网络的工作方式&#xff0c;是一种让机器可以自主地从数据中学习和提取特征的技术。你可以把它想象成一位小侦探&#xff0c;通过不…...

TCP/IP网络江湖——物理层护江山:网络安全的铁壁防线(物理层下篇:物理层与网络安全)

TCP/IP网络江湖——物理层护江山:网络安全的铁壁防线(物理层下篇:物理层与网络安全) 〇、引言一、物理层的隐私与保密1.1 加密技术的护盾1.2 安全传输协议的密约1.3 物理层的安全控制1.4 面对未知威胁的准备二、电磁干扰与抵御2.1 电磁干扰的威胁2.2 抗干扰技术的应用2.3 屏…...

做网站在哪个程序做/宁波网站建设推广公司价格

国家集训队1999论文集陈宏&#xff1a;《数据结构的选择与算法效率——从IOI98试题PICTURE谈起》来煜坤&#xff1a;《把握本质&#xff0c;灵活运用——动态规划的深入探讨》齐鑫&#xff1a;《搜索方法中的剪枝优化》邵铮&#xff1a;《数学模型的建立、比较和应用》石润婷&a…...

电子商务网站建设的规划/网站推广宣传语

1. 为什么将 View 从别处粘贴进另一个View后无法添加约束&#xff1f; 在 Size 面板中将 Layout 属性改为 Inferred(Constraints)。此外&#xff0c;当一个 view 下面没有 Constraints 时&#xff0c;无法将别的 view 拖进这个 view。你可以从 Library 中随便拖一个控件到这个…...

wordpress错误页/小米市场营销案例分析

每个所谓的 Token Economy&#xff08;代币经济&#xff09;&#xff0c;在没有落地之前&#xff0c;都只是一个金融游戏。文 | 王也 运营 | 盖遥 编辑 | 卢晓明出品 | Odaily星球日报&#xff08;ID&#xff1a;o-daily&#xff09;距离 Algorand 第一次荷兰拍卖结束已经一个…...

网站 建立目录出错/网络推广外包哪家好

什么是企业云存储&#xff1f;实际这是一个远程平台&#xff0c;可通过高度虚拟化的多租户基础架构为企业提供可扩展的数据存储资源&#xff0c;可以根据组织的要求对其进行动态配置。企业员工可以将本地的电脑或者手机客户端生成的所有数据存储经过Internet存放在云中&#xf…...

17网站一起做网店 发货慢/最新seo教程

2019独角兽企业重金招聘Python工程师标准>>> 过度使用同步会导致性能低下、死锁或其他不确定问题 在一个同步方法或代码块中&#xff0c;不要放弃对客户端的控制 即&#xff1a;在一个同步区域内部&#xff0c;不要调用被覆盖方法&#xff0c;或者是传入对象提供的方…...

i深圳网站建设/营销型网站的公司

p9 svn配置多仓库与权限控制...