基于django图书信息管理系统的搭建(增删改查)
✍django项目搭建教程 ☞ ----------------- 教程
本文主要讲解django如何连接数据库MySQL并且可视化展示,实现增删改查功能
目录
一. 创建django应用
二. 数据库配置
三. 查看数据库
四. 编写代码
4.1视图函数
4.2 配置URL
4.3创建模板文件
4.3.1 book_list.html
4.3.2 book_create.html
4.3.3 book_update.html
五. 系统展示
六. 更多干货
一. 创建django应用
在创建完项目的基础上创建应用,点击文章首部“教程” 0基础也能搭建好项目
python manage.py startapp myapp ---应用名为myapp,可自行修改
创建完应用在项目文件夹下的settings.py中的INSTALLED_APPS 添加一行 "myapp"

项目文件夹下会出现 myapp 文件夹,定义模型 在 myapp/models.py 文件中定义 Book 模型
from django.db import modelsclass Book(models.Model): ------表结构title = models.CharField(max_length=200)author = models.CharField(max_length=100)publication_year = models.IntegerField()def __str__(self):return self.title
二. 数据库配置
在项目文件夹下的settings.py添加
DATABASES = {# "default": {# "ENGINE": "django.db.backends.sqlite3",# "NAME": BASE_DIR / "db.sqlite3",# }'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'date',----数据库名字'USER': 'root','PASSWORD': '123456','HOST': '127.0.0.1','PORT': '3306'}}
注意:配置完成后,在MySQL执行CREATE DATABASE date 命令创建数据库
迁移数据库:执行以下命令来创建数据库表
python manage.py makemigrations
python manage.py migrate
和下图一致表明成功了

三. 查看数据库
我们可以看到自动生成了如下表,其中最下面的表就是我们所定义的book模型

四. 编写代码
4.1视图函数
在 myapp/views.py 文件中编写视图函数
from django.shortcuts import render, redirect
from.models import Bookdef book_list(request):books = Book.objects.all()return render(request, 'book_list.html', {'books': books})def book_create(request):if request.method == 'POST':title = request.POST['title']author = request.POST['author']publication_year = request.POST['publication_year']Book.objects.create(title=title, author=author, publication_year=publication_year)return redirect('book_list')return render(request, 'book_create.html')def book_update(request, pk):book = Book.objects.get(pk=pk)if request.method == 'POST':book.title = request.POST['title']book.author = request.POST['author']book.publication_year = request.POST['publication_year']book.save()return redirect('book_list')return render(request, 'book_update.html', {'book': book})def book_delete(request, pk):book = Book.objects.get(pk=pk)book.delete()return redirect('book_list')
4.2 配置URL
在 项目文件夹下的urls.py 文件中配置URL
from django.contrib import admin
from django.urls import path
from myapp.views import book_list, book_create, book_update, book_deleteurlpatterns = [path('admin/', admin.site.urls),path('books/', book_list, name='book_list'),path('books/create/', book_create, name='book_create'),path('', book_update, name='book_update'),path('', book_delete, name='book_delete'),
]
4.3创建模板文件
在 myapp/templates 目录下创建以下HTML文件,没有目录则先创建目录
4.3.1 book_list.html
<!DOCTYPE html>
<html>
<head><title>Book List</title>
</head>
<body><h1>Book List</h1>Create New Book<ul>{% for book in books %}<li>{{ book.title }} - {{ book.author }} ({{ book.publication_year }})UpdateDelete</li>{% endfor %}</ul>
</body>
</html>
4.3.2 book_create.html
<!DOCTYPE html>
<html>
<head><title>Create Book</title>
</head>
<body><h1>Create New Book</h1><form method="post">{% csrf_token %}<label for="title">Title:</label><br><input type="text" id="title" name="title" required><br><label for="author">Author:</label><br><input type="text" id="author" name="author" required><br><label for="publication_year">Publication Year:</label><br><input type="number" id="publication_year" name="publication_year" required><br><input type="submit" value="Create"></form>
</body>
</html>
4.3.3 book_update.html
<!DOCTYPE html>
<html>
<head><title>Update Book</title>
</head>
<body><h1>Update Book</h1><form method="post">{% csrf_token %}<label for="title">Title:</label><br><input type="text" id="title" name="title" value="{{ book.title }}" required><br><label for="author">Author:</label><br><input type="text" id="author" name="author" value="{{ book.author }}" required><br><label for="publication_year">Publication Year:</label><br><input type="number" id="publication_year" name="publication_year" value="{{ book.publication_year }}" required><br><input type="submit" value="Update"></form>
</body>
</html>
五. 系统展示


六. 更多干货
------------ -- ✈✈✈
1.如果我的博客对你有帮助或你喜欢我的博客内容,请 “👍点赞” “✍️评论” “★收藏” 一键三连哦!
2.❤️【👇🏻👇🏻👇🏻关注我| 获取更多源码 | 优质文章】 带您学习各种前端插件、3D炫酷效果、图片展示、文字效果、以及整站模板 、HTML模板 、微信小程序模板 、等! 「在这里一起探讨知识,互相学习」!
3.以上内容技术相关问题✉欢迎一起交流学习 ☟ ☟ ☟
相关文章:
基于django图书信息管理系统的搭建(增删改查)
✍django项目搭建教程 ☞ ----------------- 教程 本文主要讲解django如何连接数据库MySQL并且可视化展示,实现增删改查功能 目录 一. 创建django应用 二. 数据库配置 三. 查看数据库 四. 编写代码 4.1视图函数 4.2 配置URL 4.3创建模板文件 4.…...
Python 编程题 第四节:斐波那契数列、列表的复制、暂停后输出、成绩评级、统计字符
斐波那契数列 方法一(递归) def f(a):if a1:return 1elif a2:return 1else:return f(a-1)f(a-2) print(f(3)) 方法二(非递归) nint(input()) lst[1,1] for i in range(2,n1):lst.append(lst[i-1]lst[i-2]) print(lst[n-1]) 列…...
【华为OD机考】华为OD笔试真题解析(15)--异常的打卡记录
题目描述 考勤记录是分析和考核职工工作时间利用情况的原始依据,也是计算职工工资的原始依据,为了正确地计算职工工资和监督工资基金使用情况,公司决定对员工的手机打卡记录进行异常排查。 如果出现以下两种情况,则认为打卡异常…...
跟我学C++中级篇——定时器的设计
一、定时器 谈到定时器,理论上讲是各种语言和各种设计都无法避开的一个技术点。对于定时器来说,表面上就是一种时间间隔的处理约定,但对程序来说,可能就是设计层面、接口层面和库或框架以及系统应用的一个大集合。不同的系统&…...
HTTP 请求时传递多部分表单数据
HTTP 请求时传递多部分表单数据(multipart/form-data) --data-raw $------demo11111\r\nContent-Disposition: form-data; name"Filedata"; filename"截屏2025-02-27 15.45.46.png"\r\nContent-Type: image/png\r\n\r\n\r\n------d…...
第J3-1周:DenseNet算法 实现乳腺癌识别
文章目录 一、前言二、前期准备1.设置GPU2.划分数据集 三、搭建网络模型1.DenseLayer模块2.DenseBlock模块3.Transition模块4.构建DenseNet5.构建densenet121 四、训练模型1.编写训练函数2.编写测试函数3.正式训练 五、结果可视化1.Loss与Accuracy图2.模型评估 总结:…...
Mac 版 本地部署deepseek ➕ RAGflow 知识库搭建流程分享(附问题解决方法)
安装: 1、首先按照此视频的流程一步一步进行安装:(macos版)ragflowdeepseek 私域知识库搭建流程分享_哔哩哔哩_bilibili 2、RAGflow 官网文档指南:https://ragflow.io 3、RAGflow 下载地址:https://github.com/infi…...
【解决】OnTriggerEnter/OnTriggerExit 调用匿名委托误区的问题
开发平台:Unity 开发语言:CSharp 6.0 开发工具:Visual Studio 2022 问题背景 public void OnTriggerEnter(Collider collider) {output.OnInteractionNoticed () > OnInteractionTriggered?.Invoke(); }public void OnTriggerExit(C…...
vscode集成DeepSeek
vscode 扩展 安装 Cline Meet Cline,一个可以使用你的CLI和编辑器的AI助手。 得益于 Claude 3.5 Sonnet的代理编码功能,Cline 可以逐步处理复杂的软件开发任务。借助让他创建和编辑文件、探索大型项目、使用浏览器和执行终端命令(在您授予权限后)的工具&…...
MapReduce编程模型
MapReduce编程模型 理解MapReduce编程模型独立完成一个MapReduce程序并运行成功了解MapReduce工程流程掌握并描述出shuffle全过程(面试)独立编写课堂及作业中的MR程序理解并解决数据倾斜 1. MapReduce编程模型 Hadoop架构图 Hadoop由HDFS分布式存储、M…...
SQL server2022的详细安装流程以及简单使用
鉴于SQL Server2008R2版本过于老旧,本文主要讲述如何安装SQL Server 2022。 本文主要详细介绍SQL server2022的详细安装流程以及简单使用,以《数据库系统概论(第5版)》的第79页—第80页为例,详细介绍如何使用SQL serv…...
Linux的诞生:一场自由与协作的技术革命
Linux的诞生:一场自由与协作的技术革命 在今天的互联网世界,Linux几乎无处不在——从智能手机(Android内核)到超级计算机,从云计算平台到家用路由器,它的身影渗透在技术的各个角落。但这样一个改变世界的操…...
Pytorch为什么 nn.CrossEntropyLoss = LogSoftmax + nn.NLLLoss?
为什么 nn.CrossEntropyLoss LogSoftmax nn.NLLLoss? 在使用 PyTorch 时,我们经常听说 nn.CrossEntropyLoss 是 LogSoftmax 和 nn.NLLLoss 的组合。这句话听起来简单,但背后到底是怎么回事?为什么这两个分开的功能加起来就等于…...
Go入门之文件
以只读方式打开文件 package mainimport ("fmt""io""os" )func main() {file, err : os.Open("./main.go")defer file.Close()if err ! nil {fmt.Println(err)return}fmt.Println(file)var tempSlice make([]byte, 128)var strSlice…...
基因型—环境两向表数据分析——品种生态区划分
参考资料:农作物品种试验数据管理与分析 用于品种生态区划分的GGE双标图有两种功能图:试点向量功能图和“谁赢在哪里”功能图。双标图的具体模型基于SD定标和h加权和试点中心化的数据。本例中籽粒产量的GGE双标图仅解释了G和GE总变异的53.6%,…...
Leetcode2414:最长的字母序连续子字符串的长度
题目描述: 字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说,字符串 "abcdefghijklmnopqrstuvwxyz" 的任意子字符串都是 字母序连续字符串 。 例如,"abc" 是一个字母序连续字符串,而 "ac…...
React(12)案例前期准备
1、创建项目 npx creat-react-app xxx 这里注意 react版本过高会导致antd组件无法安装 需要手动修改pagejson文件中的react和react-demo版本号为 18.2.0 npm i 在配置别名路径 创建craco文件 const path require("path"); module.exports {webpack: {alias: …...
2025年2月28日(RAG)
从图片中的内容来看,用户提到的“RAG”实际上是“Retrieval-Augmented Generation”的缩写,中文称为“检索增强生成”。这是一种结合了检索(Retrieval)和生成(Generation)的技术,用于增强自然语…...
python-leetcode-寻找重复数
287. 寻找重复数 - 力扣(LeetCode) class Solution:def findDuplicate(self, nums: List[int]) -> int:# Step 1: 找到环的相遇点slow nums[0]fast nums[0]# 使用快慢指针,直到相遇while True:slow nums[slow] # 慢指针走一步fast nu…...
Vue 3 中,如果 public 目录下的 .js 文件中有一个函数执行后生成数据,并希望将这些数据传递到组件中
在 Vue 3 中,如果 public 目录下的 .js 文件中有一个函数执行后生成数据,并希望将这些数据传递到组件中,可以使用 window.postMessage,但需要结合具体场景。以下是不同方法的详细说明: 方法 1:使用 window…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
更新 Docker 容器中的某一个文件
🔄 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法,适用于不同场景。 ✅ 方法一:使用 docker cp 拷贝文件到容器中(最简单) 🧰 命令格式: docker cp <…...
TMC2226超静音步进电机驱动控制模块
目前已经使用TMC2226量产超过20K,发现在静音方面做的还是很不错。 一、TMC2226管脚定义说明 二、原理图及下载地址 一、TMC2226管脚定义说明 引脚编号类型功能OB11电机线圈 B 输出 1BRB2线圈 B 的检测电阻连接端。将检测电阻靠近该引脚连接到地。使用内部检测电阻时,将此引…...
