基于Python+sqlite3实现(Web)图书管理系统

embedded/2024/10/17 18:33:09/

项目名称:LibraryManagementSystem

一、系统目标

使用了Python作为语言,以django为后台,sqlite3作为数据库,UI基于bootstrap的图书管理系统,模拟图书管理的真实场景,考虑客观需求,界面简洁、操作方便,易上手。

二、系统功能

第二部分 系统设计报告

一、系统概念数据库设计

系统E-R图设计:

二、系统逻辑数据库设计

User(用户表)

字段类型默认注释
user_idvarchar(20)用户id
user_namevarchar(50)姓名
sexvarchar(1)0性别男(0)女(1)
passwordvarchar(200)密码
emailvarchar(50)邮箱
last_visitdatetime最后访问时间(开户时登记开户时间)
is_superuservarchar(1)是否超级用户
is_activevarchar(1)是否活跃
Rolevarchar(20)角色

PermissionList(权限等级,根据不同的权限访问不同的url)

字段类型默认注释
PermissionNamevarchar(5)权限名
Urlvarchar(50)路径

RoleList(角色表,不同的角色拥有不同的permission)

字段类型默认注释
RoleNamevarchar(20)角色名
PermissionNamevarchar(50)权限
uesrnamevarchar(50)用户名

Book

字段类型默认注释
book_idvarchar(20)书籍id
book_namevarchar(50)书籍名称
authorvarchar(50)作者
pressvarchar(50)出版社
publication_yearsmallint(6)出版年
introductionvarchar(1000)介绍
add_timedatetime入库时间
category_idvarchar(20)类型
countstinyint(4)剩余数量
InventoryInt入库数量

Borrow(借书表)

字段类型默认注释
borrow_idvarchar(60)user_id+now_time
user_idvarchar(20)用户id
book_idvarchar(40)书籍id+rank
borrow_datedatetime借书时间
return_datedatetime还书时间
termsmallint(6)借期

Fine(罚款规则表)

字段类型默认注释
fine_idvarchar(20)处罚类别id
book_typevarchar(5)书籍等级
pricefloat precise(2)每天价格
is_deletevarchar(1)00没有删除
1已经删除

Record(记录表,记录用户的操作)

字段类型默认注释
Record_idvarchar(20)User_id+now_time
user_idvarchar(20)用户id
record_datedatetime操作时间
record_categoryvarchar(20)操作
record_introductvarchar(1000)操作记录
  • Borrow表的user_id属性设置为外键,该属性参考User表的user_id。
  • User表的role属性设置为外键,该属性参考RoleList表的RoleName。
  • Borrow表的book_id属性设置为外键,该属性参考Book表的book_id。
  • Record表的user_id属性设置为外键,该属性参考User表的user_id。

第三部分 系统使用说明书

一、系统安装

若要在本地运行服务,确保系统装有Python2.7,利用easy_install或pip2.7安装django,south命令行下进入项目目录,

执行:

python2.7 ./manage.py syncdb
python2.7 ./manage.py runserver 0.0.0.0:8080

二、系统启动

本地访问:在浏览器输入url:127.0.0.1:8080

三、系统登录

在登录页面输入正确的账号密码

用户名为学号,密码为学号后6位

四、系统菜单

如下图所示:个人管理,系统管理,用户管理和其他4个总项。右上角是登录状态

五、系统设置

无需设置。

六、系统功能

点击左边的菜单栏选择功能

1.书籍入库

系统管理 --> 书籍入库 跳出如下界面

若不按要求输入信息,则会报错

输入信息正确

点击入库,自动跳转 借阅书籍 界面

2. 借书

点击借书按钮,若借书成功,自动跳转个人状态界面

失败的情况(举一例):

3.还书

个人状态界面,点击还书按钮,还书成功,书籍剩余量加一

4.图书管理

系统管理 图书管理

修改

修改不当会报错,以表格的形式呈现(包括后面的用户管理、用户类型,借阅书籍,个人状态、总体记录),

表格功能

1.搜索

在搜索框中输入相应的内容,可以搜索到相关的信息。

如:计算机

填完相应信息后点击确定可提交;

2.滚动条

登录界面时,自动跳转上次记录的地方

3.删除按钮

点击确定后删除,点击表头中的相应字段,可以根据相应字段进行排序;

如根据藏书量排序

在表头:

可以看到总共的记录条数,可以选择每页显示的记录条数,右部可实现分页的跳转(选择页数,上一页,下一页,首页,末页)

以上功能为图书管理、用户管理、用户类型,借阅书籍,个人状态、总体记录通用功能。

5.用户管理

查看用户的相应信息

6.角色管理

新建角色

7.权限管理

新建权限

8.个人记录

可以看到个人相应的借书记录,登录信息,还书记录等

9.总体记录

显示了所有用户的所有记录

10.罚款规则

静态页面

11.系统信息

静态页面

六、 关系模式设计

书籍信息表

Book(
book_id(primary key),
book_name,
author,
press,
publication_year,
introduction,
add_time,
category_id,
inventory
remainNumber)

借书表

Borrow(
borrow_id(primary),
user(foreign_key),
book(foreign_key),
borrow_date,
return_date,
term_day)

记录

record(
record_id,
user(foreign_key),
record_date,
record_category,
record_introduct
)

用户表

User(
user_name(primary key),
sex,
password,
email,
last_visit,
is_active,
is_superuser
nickname,
role
)

用户等级

PermissionList(
name,
url
)

RoleList(
name,
permission
)

第四部分 心得体会

本项目选择了Python作为后台语言,简洁轻量,便于快速开发;

使用了Django作为后台框架,确保了用户登陆系统的稳定性和安全性;

由于Django屏蔽了上层操作数据库的过程,可以任意选择被支持的数据库,为了方便,暂时选择了本地轻量级数据库Sqlite3;

由于项目比较简单,并未完成太多冗余功能,只完成了用户管理,图书管理,借阅书籍等主要功能;


http://www.ppmy.cn/embedded/126907.html

相关文章

麒麟信安CentOS安全加固案例获评中国信通院第三届“鼎新杯”数字化转型应用奖

“鼎新杯”数字化转型应用大赛,由中国通信标准化协会主办、中国信息通信研究院承办,以落实国家“十四五”规划关于“加快数字化发展,建设数字中国”的总体要求为目标,意在打造一批具有产业引领与推广应用效应的企业数字化转型应用…

操作教程|基于DataEase用RFM分析法分析零售交易数据

DataEase开源BI工具可以在店铺运营的数据分析及可视化方面提供非常大的帮助。同样,在用于客户评估的RFM(即Recency、Frequency和Monetary的简称)分析中,DataEase也可以发挥出积极的价值,通过数据可视化大屏的方式实时展…

SpringCloud网关聚合knife4j方案

微服务开发中想将Spring-Cloud-Gateway网关聚合knife4j,形成一个统一入口方便查阅的开发辅助接口文档,并且将Swagger抽取成一个公共模块,那么我们可以参考以下的做法 约定: Java Version:11.0.24 Spring Boot&#xff…

YoloV8改进策略:BackBone改进|CAFormer在YoloV8中的创新应用,显著提升目标检测性能

摘要 在目标检测领域,模型性能的提升一直是研究者和开发者们关注的重点。近期,我们尝试将CAFormer模块引入YoloV8模型中,以替换其原有的主干网络,这一创新性的改进带来了显著的性能提升。 CAFormer,作为MetaFormer框架下的一个变体,结合了深度可分离卷积和普通自注意力…

解决ubuntu 下 VS code 无法打开点击没反应问题

从Ubuntu 22.04 升级到ubuntu 24.04 后,发现Vsode无法打开,不论是点击图标,还是terminator里面运行code 可执行程序,均没有反应。debug如下: 提示权限不够。 解决方案: sudo sysctl -w kernel.apparmor_restrict_unp…

Mysql(1)—简介及Windows环境下载安装

一、关于Mysql 1.1 简介 MySQL是一个流行的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)进行操作。MySQL由瑞典MySQL AB公司开发,后来被Sun Microsystems收购,最终成为Oracle公司的…

题目:1297. 子串的最大出现次数

> Problem: 1297. 子串的最大出现次数 题目:1297. 子串的最大出现次数 题目描述 给定一个字符串 s,要求找到满足以下条件的任意子串的出现次数,并返回该子串的最大出现次数: 子串中不同字母的数目必须小于等于 maxLetters。…

FLASK 全局模板函数创建以及使用方法来构建资源链接器

代码位置: app.py 函数模板from common.libs.UrlManager import UrlManager app.add_template_global(UrlManager.buildStaticUrl, buildStaticUrl) app.add_template_global(UrlManager.buildUrl, buildUrl) app.add_template_global(UrlManager.buildImageUrl, buildImageUr…