第123天: Web 开发 Django 管理工具

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

运行 Django Admin

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

# polls/models.py
from django.db import models
class 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.py
INSTALLED_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.py
from django.contrib import adminfrom django.urls import path, include
urlpatterns = [ 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.py
from 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 管理工具,可以通过应用的模型简单配置,生成出对应的后台数据管理页面,通过这个管理页面,我们可以方便的管理数据。当然除了简单模型,它还可以管理复杂模型,并可以自定义表单以及样式等,感兴趣的朋友可以更深入的研究下。

参考

Django 中文官网:https://docs.djangoproject.com/zh-hans/2.2

示例代码:https://github.com/JustDoPython/python-100-day

系列文章

第122天:Flask 单元测试

第121天:机器学习之决策树
从 0 学习 Python 0 - 120 大合集总结
(0)

相关推荐

  • 数据库表反向生成(二) Django ORM inspectdb

    如果你已经有已知的数据库及表格. 运行下面代码可以自动生成models模型文件 python manage.py inspectdb > your_app_name/models.py 或者py ...

  • 用 Python 在安卓手机上构建 Web 应用程序

    昨天 嘿,你好吗?我今年 18 岁,是一名后端开发者,我希望成为机器学习工程师.在本文中,我会介绍如何使用 Python 在手机上构建 Web 应用程序.开始吧! 必要条件 要满足的第一个条件是拥有一 ...

  • Python做一个属于自己的web网站「下」

    原创 AI悦创 AI悦创 1周前 你好,我是悦创.昨天写了一篇:Python 做一个属于自己的web网站「上」,但有点小 bug ,什么 bug 呢?待会就说.开头这张图确实有点丑,不过奈何没办法,没 ...

  • python测试开发django-34.xadmin管理后台

    前言 django自带的admin后台管理页面有点丑陋,于是网上的大神优化了一版后台管理xadmin,并且开源了,在github开源下载到源码. 注意环境搭配: django  2.1.2 xadmi ...

  • python测试开发django-17.admin后台管理

    前言 通常一个网站开发,需要有个后台管理功能,比如用后台管理发布文章,添加用户之类的操作.django的admin后台管理主要可以实现以下功能 基于admin模块,可以实现类似数据库客户端的功能,对数 ...

  • 第 58 天:Python Web开发 Django 简介

    今天来为大家介绍 Python 另一个 Web 开发框架 Django,它是一个基于 Python 定制的开源 Web 应用框架,最早源于一个在线新闻 Web 网站,后于2005年开源.Django ...

  • 第124天: Web 开发 Django 模板

    上次为大家介绍了 Django 的模型和自带的管理工具,有了这个工具就可以全自动地根据模型创建后台管理界面,以供网站管理者更方便的管理网站数据.有了网站数据,那怎么样更方便又好看的展示给用户看呢?目前 ...

  • Web开发,10款HTML5开发工具推荐

    javalearns Java学习网 1周前 HTML5是Web中核心语言HTML的规范,用户使用任何手段进行网页浏览时看到的内容原本都是HTML格式的,在浏览器中通过一些技术处理将其转换成为了可识别 ...

  • vite —— 一种新的、更快地 web 开发工具

    前端技术优选 今天 以下文章来源于淘系前端团队 ,作者木偶 文末福利:开发者藏经阁 NO.1 vite 是什么 vite -- 一个由 vue 作者尤雨溪开发的 web 开发工具,它具有以下特点: 快 ...

  • 经典管理工具-PDCA使用指南详解(史上最强)

    PDCA循环,一个老话题了,大家都知道要这么做,但在平时的生活和工作当中,你是否真的都这样做呢? 当你发现你面对的困难重重,寸步难行时,是否反思过是因为自己一开始的方法就不正确? 本文包涵了PDCA循 ...

  • 好文:3分钟掌握世界上最伟大的管理工具—BSC平衡计分卡 值得收藏

    指标提炼对了,绩效考核就成功了一半. 反过来说,如果指标提炼错了,你的绩效考核就失败了一半. 案例: 有一个企业考核他的店长,他提炼了这样一些指标,他有销售额.有毛利额. 然后他认为要考核一个店长,还 ...

  • 精益生产绩效管理工具LPS

    为了衡量精益生产是否成功,公司可以利用层级分析法(AHP)建立起一套梢益绩效评分系统(Lean performance score,简称LPS).现在就以6家实施了精益生产的公司为例,讨论如何应用LP ...

  • 2021年 国开电大 Web开发基础 形考任务1-5答案《高分通过!》

    实验1:电商网站前端页面内容编写(16分) [目标]根据素材中的设计图,编写网站首页,查询列表页和详情页三个网页的html内容(暂时不用编写CSS代码) [时间]约4学时 [步骤] 1.根据素材中给定 ...

  • 【组队学习】【25期】Web开发入门教程

    Web开发入门教程 开源内容: https://github.com/datawhalechina/whale-web 基本信息 贡献人员:张梁.王晓亮.何锋丽.张少波.谢文昕 学习周期:16天 学习 ...