广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django图书管理系统(单表操作)
  • 487
分享到

Django图书管理系统(单表操作)

图书管理系统操作Django 2023-01-30 23:01:11 487人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

以下内容需要掌握: python3 以及前端:html,CSS,Jquery,BootStrap,Django,javascript 开启Django新项目: 1,settings.py  数据库选择: ①sqlite3(DjanGo自

以下内容需要掌握:

python3 以及前端:html,CSS,Jquery,BootStrap,Django,javascript

开启Django新项目:

1,settings.py

 数据库选择:

sqlite3(DjanGo自带的数据库:文件式数据库):我们这里用sqlite3,下面Mysql配置仅做了解

mysql: 配置:
__init__.py:(对应应用文件夹下和urls.py同一个文件夹)
import pymysql
pymysql.install_as_MySQLdb()

------------------------------

settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '------输入数据库名---------',
'USER': '------输入数据库用户名root/其它----------',
'PASSWord': '-----输入数据库密码------',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}

2,建一个static文件夹:(项目名---新建--python package)

BootStrap文件夹
jQuery.3.3.1.js
自定义CSS

settings.py配置:

STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
os.path.join(BASE_DIR, "recommend", "static"),     #  不加这句有可能出现页面渲染不了bootstrap的情况
]

3,让控制台显示SQL查询语句

settings.py配置:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level':'DEBUG',
},
}
}

4,templates目录下放网页

books.html        显示所有书籍

//jQuery.js引入到HTML:

<script src="/static/jQuery.3.3.1.js"></script>

//BootStrap.css引入到HTML:

<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">

//-------------------------------------------------------
//书籍列表
//添加书籍
//表格:

//ID 书名 价格 出版日期 出版商 操 作
//-------------------------------------------------------
<h3>书籍列表</h3>

<div class="row">
<div class="col-md-8 col-md-offset-2">
<a href="/books/add/" class="btn btn-primary"> 添加书籍</a>
<table class="table table-striped table-hover">
<thead>
<tr>
<th>ID</th>
<th>书籍名称</th>
<th>价格</th>
<th>出版社</th>
<th>出版日期</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for book in queryset %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ book.title }}</td>
<td>{{ book.price }}</td>
<td>{{ book.publish }}</td>
<td>{{ book.pub_date|date:"Y/m/d" }}</td>
<td>
<a href="/books/delete/{{ book.nid }}">删除</a>
<a href="/books/edit/{{ book.nid }}">编辑</a>
</td>
</tr>
{% endfor %}

</tbody>
</table>
</div>
</div>
<script>
$("h3").click(function () {-------------------jQuery的知识
$(this).css("color","red")
})
</script>

addbook.html    添加书籍

jQuery.js引入到HTML:

<script src="/static/jQuery.3.3.1.js"></script>

BootStrap.css引入到HTML:

<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">

----------------------------

书名:input
价格:input
出版日期:input
出版商:input
Submit提交

-----------------------------------

<h3>添加书籍</h3>
<div class="row">
<div class="col-md-4 col-md-offset-3">
<fORM action="/books/add/" method="post">
{% csrf_token %}
<div class="form-group">
<label for="title">书籍名称</label>
<input class="form-control" type="text" id="title" placeholder="名称" name="title">
</div>
<div class="form-group">
<label for="price"> 价格</label>
<input class="form-control" type="text" id="price" placeholder="价格" name="price">
</div>
<div class="form-group">
<label for="publish">出版社</label>
<input class="form-control" type="text" id="publish" placeholder="出版社" name="publish">
</div>
<div class="form-group">
<label for="pub_date">出版日期</label>
<input class="form-control" type="date" id="pub_date" placeholder="出版日期" name="pub_date">
</div>
<input type="submit"value="submit" class="btn btn-default pull-right">
</form>
</div>
</div>

editbook.html    编辑书籍

//jQuery.js引入到HTML:

<script src="/static/jQuery.3.3.1.js"></script>

//BootStrap.css引入到HTML:

<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">

 -----------------------

编辑书籍

书名:input value=从数据库获取当前选择的ID对应的数据显示
价格:input value=从数据库获取当前选择的ID对应的数据显示
出版日期:input value=从数据库获取当前选择的ID对应的数据显示
出版商:input value=从数据库获取当前选择的ID对应的数据显示

Submit

----------------------

<h3>编辑书籍</h3>
<div class="row">
<div class="col-md-4 col-md-offset-3">
<form action="" method="post">
{% csrf_token %}
<div class="form-group">
<label for="title">书籍名称</label>
<input class="form-control" type="text" id="title" placeholder="名称" name="title" value="{{ edit_book.title }}">
</div>
<div class="form-group">
<label for="price"> 价格</label>
<input class="form-control" type="text" id="price" placeholder="价格" name="price" value="{{ edit_book.price }}">
</div>
<div class="form-group">
<label for="publish">出版社</label>
<input class="form-control" type="text" id="publish" placeholder="出版社" name="publish" value="{{ edit_book.publish }}">
</div>
<div class="form-group">
<label for="pub_date">出版日期</label>
<input class="form-control" type="date" id="pub_date" placeholder="出版日期" name="pub_date" value="{{ edit_book.pub_date|date:'Y-m-d' }}">
</div>
<input type="submit"value="submit" class="btn btn-default pull-right">
</form>
</div>
</div>

5,models.py

class Book(models.Model): # -------继承模型类
id = models.AutoField(primary_key=True) # --------自增(主键)
title = models.CharField(max_length=32) # --------字符串(长度32位)
price = models.DecimalField(max_digits=5,decimal_places=2) # -----最大位数,浮点位数
publish = models.CharField(max_length=32)
pub_date = models.DateTimeField()
class Meta: # ------告诉解析器自己定义数据表名(否则 app01Book)
db_table='book'

6,数据库迁移

Tools(工具栏):
run manage.py Task...

>>>>>>>makemigrations

>>>>>>>migrate

完了后生成了db.sqlite3文件:

PyCharm右边database:(sqlite3首次使用需下载,弹出框有,完后,左边项目目录下db.sqlite3双击)
点开右边database:book可以看到加入数据库的表格字段

7,urls.py

..............import re_path
from book import views

urlpatterns=[

...........
path('books',views.books)
path('books/add/', views.addbook)
re_path('books/delete/(\d+)', views.delbook)
re_path(r'^books/edit/(\d+)$', views.editbook)

]

8,views.py

def books(request):
queryset = Book.objects.all()
return render(request,'books.html',{'queryset':queryset})


def addbook(request):
# 方式1:
if request.method=='POST':
# title=request.POST.get('title')
# ...
# book=models.Book.objects.create(titles=title,price=price,publish=publish,pub_date=pub_date)
# 方式2:(推荐)
data=request.POST.dict() #-----------Querydict生成字典
data.pop('csrfmiddlewaretoken')
book=models.Book.objects.create(**data) #-----聚合
return redirect('/books/') #-----------重定向到books
else
return return render(request,'addbook.html')

def delbook(request,del_id):
models.Book.objects.filter(nid=del_id).delete()
return redirect("/books/")

def editbook(request,edie_id):
if request.method=="GET":
edit_book=models.Book.objects.filter(nid=edit_book_id).first()

return render(request,"editbook.html",{"edit_book":edit_book})

else:
title = request.POST.get("title")
price = request.POST.get("price")
publish = request.POST.get("publish")
pub_date = request.POST.get("pub_date")
models.Book.objects.filter(nid=edit_book_id).update(title=title,price=price,publish=publish,pub_date=pub_date)

return redirect("/books/")

 

启动项目:

浏览器输入:

Http://127.0.0.1:8000/books

--结束END--

本文标题: Django图书管理系统(单表操作)

本文链接: https://www.lsjlt.com/news/180790.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django图书管理系统(单表操作)
    以下内容需要掌握: Python3 以及前端:HTML,CSS,jQuery,BootStrap,Django,JavaScript 开启Django新项目: 1,settings.py  数据库选择: ①sqlite3(Django自...
    99+
    2023-01-30
    图书管理系统 操作 Django
  • Django之图书管理系统
              出版社的增删改查  展示出版社列表:    1. 创建一个表结构:           2. 再配合那俩条命令即可创建一个press表          创建出版社函数,并在url中进行配置          创建HT...
    99+
    2023-01-30
    图书管理系统 Django
  • django--图书管理系统(项目)
    django创建一个新的项目设置静态文件,更改settings配置,在最后添加STATICFILES_DIRS = [     os.path.join(BASE_DIR,&nbs...
    99+
    2023-01-30
    图书管理系统 项目 django
  • Django图书管理系统怎么实现
    本篇内容主要讲解“Django图书管理系统怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Django图书管理系统怎么实现”吧!项目使用python开发,采用Django框架,数据库采用M...
    99+
    2023-07-02
  • C语言单链表实现图书管理系统
    本文实例为大家分享了C语言单链表实现图书管理系统的具体代码,供大家参考,具体内容如下 单链表实现的图书管理系统相比于结构体实现的管理系统,可以随时开辟新的空间,可以增加书的信息 单链...
    99+
    2022-11-13
  • 简单的图书管理系统(mysql)
    一、数据库结构设计 1.E-R图 2. 数据库创建语句 create database if not exists tsjy; use tsjy; 3. 表结构设计说明 借阅人表是一个实体表,它存储了借阅人的基本信息,如证件号、姓名、类别...
    99+
    2023-09-15
    数据库 mysql sql
  • C语言链表实现简单图书管理系统
    本文实例为大家分享了C语言链表实现图书管理系统的具体代码,供大家参考,具体内容如下 实现功能: 用C语言制作图书管理系统,实现图书进行登记书籍,浏览书籍,借阅书籍,归还书籍,书籍排序...
    99+
    2022-11-13
  • java实现简单图书管理系统
    本文实例为大家分享了java实现简单图书管理系统的具体代码,供大家参考,具体内容如下 JAVA练习的作业,题目如下: 设计一个图书管理系统类和用户类,要求具有以下功能: (1). 查...
    99+
    2022-11-13
  • Python实现简单的图书管理系统
    本文实例为大家分享了Python实现图书管理系统的具体代码,供大家参考,具体内容如下 题目要求: 利用Python写一个简易的图书管理系统 需求: 图书管理系统 1.查询图书2.增加...
    99+
    2022-11-13
  • java实现简单的图书管理系统
    本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下 一、项目分布 Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的...
    99+
    2022-11-12
  • C++实现简单版图书管理系统
    本文实例为大家分享了C++实现简单版图书管理系统的具体代码,供大家参考,具体内容如下 1、系统需求 图书管理系统是一个可以记录图书借记和存储的工具。 本教程主要利用C++来实现一个图...
    99+
    2022-11-13
  • C++实现简单图书馆管理系统
    本文实例为大家分享了C++实现简单图书馆管理系统的具体代码,供大家参考,具体内容如下 写了一个小项目,图书馆系统,功能如下: 1,添加书籍2,删除书籍(可删除还没外借的书籍)3,读者...
    99+
    2022-11-13
  • 【JAVASE】图书管理系统
    ⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 Ǵ...
    99+
    2023-10-01
    java
  • java单链表实现书籍管理系统
    本文实例为大家分享了java单链表实现书籍管理系统的具体代码,供大家参考,具体内容如下 书籍管理系统功能: 1).添加图书 2).删除图书 3).查看图书 4).修改书籍 5).修改...
    99+
    2022-11-12
  • C++实现图书管理系统(文件操作与类)
    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 (1)定义图书类; (2)图书信息包括:书名name,价格price,库存num; (3)可以查询、增...
    99+
    2022-11-13
  • C语言中单链表如何实现图书管理系统
    小编给大家分享一下C语言中单链表如何实现图书管理系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下单链表实现的图书管理系统相比于结构体实现的管理系统,...
    99+
    2023-06-29
  • C++顺序表实现图书管理系统
    本文为大家分享了C++顺序表实现图书管理系统的具体代码,供大家参考,具体内容如下 图书信息表包括以下10项常用的基本操作:图书信息表的创建和输出、排序、修改、逆序存储、最贵图书的查找...
    99+
    2022-11-12
  • Java顺序表实现图书管理系统
    本文实例为大家分享了Java顺序表实现图书管理系统的具体代码,供大家参考,具体内容如下 一、简介 实现此项目的目的是巩固并理解前面的知识点:类,抽象类,封装,继承,多态,接口等 二、...
    99+
    2022-11-12
  • Django超详细讲解图书管理系统的实现
    目录1、用户管理模块2、图书管理模块3、数据管理模块4、前端模块项目使用python开发,采用Django框架,数据库采用MySQL,根据用户人员的不同分成两套系统,分别是学生系统和...
    99+
    2022-11-11
  • 图书管理系统(JDBC、MySQL)
        目录 一、建立连接 1. 思路 2. 代码 二、 管理员上架功能 1. 思路 2. 代码 三、读者注册功能 1. 思路 2. 代码 四、读者借书功能 1. 思路 2. 代码 五、读者还书功能 1. 思路 2. 代码 六、读者查看借阅...
    99+
    2023-09-28
    mysql 数据库 java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作