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

项目名称:LibraryManagementSystem

一、系统目标

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

二、系统功能

第二部分 系统设计报告

一、系统概念数据库设计

系统E-R图设计:

二、系统逻辑数据库设计

User(用户表)

字段 类型 默认 注释
user_id varchar(20) 用户id
user_name varchar(50) 姓名
sex varchar(1) 0 性别男(0)女(1)
password varchar(200) 密码
email varchar(50) 邮箱
last_visit datetime 最后访问时间(开户时登记开户时间)
is_superuser varchar(1) 是否超级用户
is_active varchar(1) 是否活跃
Role varchar(20) 角色

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

字段 类型 默认 注释
PermissionName varchar(5) 权限名
Url varchar(50) 路径

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

字段 类型 默认 注释
RoleName varchar(20) 角色名
PermissionName varchar(50) 权限
uesrname varchar(50) 用户名

Book

字段 类型 默认 注释
book_id varchar(20) 书籍id
book_name varchar(50) 书籍名称
author varchar(50) 作者
press varchar(50) 出版社
publication_year smallint(6) 出版年
introduction varchar(1000) 介绍
add_time datetime 入库时间
category_id varchar(20) 类型
counts tinyint(4) 剩余数量
Inventory Int 入库数量

Borrow(借书表)

字段 类型 默认 注释
borrow_id varchar(60) user_id+now_time
user_id varchar(20) 用户id
book_id varchar(40) 书籍id+rank
borrow_date datetime 借书时间
return_date datetime 还书时间
term smallint(6) 借期

Fine(罚款规则表)

字段 类型 默认 注释
fine_id varchar(20) 处罚类别id
book_type varchar(5) 书籍等级
price float precise(2) 每天价格
is_delete varchar(1) 0 0没有删除 1已经删除

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

字段 类型 默认 注释
Record_id varchar(20) User_id+now_time
user_id varchar(20) 用户id
record_date datetime 操作时间
record_category varchar(20) 操作
record_introduct varchar(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命令行下进入项目目录,

执行:

c 复制代码
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;

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

相关推荐
echoarts23 分钟前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
liwulin050630 分钟前
【ESP32-CAM】HELLO WORLD
python
Aomnitrix42 分钟前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
Doris_20231 小时前
Python条件判断语句 if、elif 、else
前端·后端·python
Doris_20231 小时前
Python 模式匹配match case
前端·后端·python
每天回答3个问题1 小时前
UE5C++编译遇到MSB3073
开发语言·c++·ue5
伍哥的传说1 小时前
Vite Plugin PWA – 零配置构建现代渐进式Web应用
开发语言·前端·javascript·web app·pwa·service worker·workbox
这里有鱼汤1 小时前
Python量化实盘踩坑指南:分钟K线没处理好,小心直接亏钱!
后端·python·程序员
小莞尔2 小时前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
大模型真好玩2 小时前
深入浅出LangGraph AI Agent智能体开发教程(五)—LangGraph 数据分析助手智能体项目实战
人工智能·python·mcp