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

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

相关推荐
武子康3 分钟前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神35 分钟前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
宅小海1 小时前
scala String
大数据·开发语言·scala
小喵要摸鱼1 小时前
Python 神经网络项目常用语法
python
qq_327342731 小时前
Java实现离线身份证号码OCR识别
java·开发语言
锅包肉的九珍1 小时前
Scala的Array数组
开发语言·后端·scala
心仪悦悦1 小时前
Scala的Array(2)
开发语言·后端·scala
yqcoder1 小时前
reactflow 中 useNodesState 模块作用
开发语言·前端·javascript
baivfhpwxf20232 小时前
C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)
开发语言·c#
许嵩662 小时前
IC脚本之perl
开发语言·perl