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

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

相关推荐
必须得开心呀1 分钟前
为什么 python-docx 打不开加密的 .docx,Word COM 却能打开
python·word
VidDown4 分钟前
上传 2GB 文件别让 Django 接:分片上传、对象存储直传与秒传
python·django·音视频·状态模式·实时音视频·视频编解码·视频
老王爱玩车14 分钟前
动态内存管理
c语言·开发语言·学习·面试
I'm Jie20 分钟前
【开源】7 天,我用 Rust 复刻了 FinalShell!Rhost v1.0.0 发布
开发语言·rust·开源
打工仔折腾 AI25 分钟前
FaceFusion本地换脸实战:Windows整合包、模型选择与遮罩调参记录
人工智能·windows·后端·python·深度学习·性能优化·ai agent 实战
yi01126 分钟前
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针
笔记·python·算法·leetcode·二分查找·双指针
kimnoic37 分钟前
Python常用命令提示符使用方法详解
开发语言·python
Crazy________38 分钟前
05Linux内存管理核心原理与运维实战
java·开发语言
Nebula_g40 分钟前
JavaSE拓展:工具类Executors
java·开发语言·后端·spring·基础·javase
扶风ff1 小时前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word