12.5 实训:图书管理系统
完成一个简易图书馆网站,要求如下:
1.普通读者可以随意查询书籍,可以根据书名、作者两种方式查询
2.界面自定
3.管理员登录 后可以添加、修改、删除书籍
4.数据库至少有如下表格:book保存书籍信息,user保存普通用户和管理员账号密码,book_borrow保存借出信息,book_return保存还书记录
book表至少需要有以下字段:
id 类型为int 主键 自动递增
name 书名 类型为varchar 长度为50
author 作者 类型为varchar 长度为20
publisher 出版社 类型为varcahr 长度为30
user表可直接用上一章节出现的user表。
book_borrow借出信息表是一个关系表。它表示某一本书被某一个读者借出的信息,包括id(主键),书的id,读者id,借出时间,预期时间等等。注意,借出表不包含任何归还信息、书的信息(只有id)。
book_return还书记录表是一个关系表。它表示某一本书被归还的信息。包括id(主键),借出信息表id(book_borrow表的主键),归还日期。注意,借出信息表id这个字段所对应的记录,必须存在于book_borrow,也就是必须有借书,才能还书
步骤 | 备注 |
---|---|
安装数据库及界面 | 数据库环境准备 |
在mysql中创建数据库,然后创建表book | 创建表后先手动插入几条数据 |
创建一个和book表一一对应的类Book | 方便后面的查询操作 |
在sql.py中,写一个根据id查询一条书本记录的函数getBookById | 就在sql.py中测试一下此函数 |
在sql.py里面写根据书名查询书本的函数,命名为searchBook(name),返回列表类型的数据,包含n个Book对象的 | 这是一个模糊查询,例如下面的语句,会吧所有书名包含java的书查找出来: select * from book where name like "%java%" 写好后先在BookData的main函数中测试一下 |
在templates中创建页面index.html和result.html | 页面是一个搜索框,类似百度,功能就是把输入框的内容,作为上面searchBook的参数,返回结果有可能是n本书,遍历结果并显示。 搜索框就相当于登录的简化版——它只有一个数据要发送,登录要发送两个。搜索的form表单需要一个http处理函数来处理发过来的关键字,并在result.html中显示所有书的信息 |
管理员登录后的操作
步骤 | 备注 |
---|---|
之前的登录页面直接拿过来使用,包括数据库的验证登录 | |
登录后进入管理页面admin.html | 此页面要新建,页面内容是所有书的信息,是一个table形式的表格,此处可参考result.html。在表格的最后一列,是修改链接,点击修改链接后,就会进入修改书本信息的页面change.html。这个链接应该类似于这样:change.html?id=11,id是书的id |
change.html | 这个页面一开始就根据url里面id查询book,使用sql.py里面的这个函数getBookById(前面已经写过),然后把book的所有字段(除了id),显示到change.html的一个表单中,为了能修改这些信息,应该使用input元素,每个字段对应一个input,在最下方,有一个修改按钮。点击后把上面表单的数据发送到pyhon后台修改,执行对应的updateBook函数(需要在sql.py中自行创建,执行一条update语句,如下行所示) |
update处理过程 | 在sql.py里面写一个updateBook函数,参数是一个Book对象,把Book对象的字段拼成一个update语句执行。/update处理接收发送过来的所有book字段数据,然后根据这些字段创建一个Book对象,在页面中调用updateBook函数完成更新。 |
数据库更新函数示例