基于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;

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

相关推荐
闪电麦坤9528 分钟前
C#:base 关键字
开发语言·c#
Mason Lin36 分钟前
2025年3月29日(matlab -ss -lti)
开发语言·matlab
DREAM.ZL1 小时前
基于python的电影数据分析及可视化系统
开发语言·python·数据分析
難釋懷1 小时前
JavaScript基础-移动端常见特效
开发语言·前端·javascript
海姐软件测试1 小时前
Postman参数化设置如何设置?
开发语言·jmeter
松树戈1 小时前
Java常用异步方式总结
java·开发语言
weisian1511 小时前
Java常用工具算法-3--加密算法2--非对称加密算法(RSA常用,ECC,DSA)
java·开发语言·算法
Uncertainty!!1 小时前
python函数装饰器
开发语言·python·装饰器
x-cmd1 小时前
[250331] Paozhu 发布 1.9.0:C++ Web 框架,比肩脚本语言 | DeaDBeeF 播放器发布 1.10.0
android·linux·开发语言·c++·web·音乐播放器·脚本语言
myloveasuka2 小时前
[Linux]从硬件到软件理解操作系统
linux·开发语言·c++