Ø首页
首页主要是将书籍信息显示出来。
上述代码是网站的首页代码,将所有书籍信息显示出来。第6~8行搜索书籍输入框以及搜索触发按钮。第10~11行是添加书籍按钮,直接跳转到添加书籍界面。第12~44行是首页主体显示内容,以表格形式显示书籍信息,主要包括编号{{ forloop.counter }}、书名{{ book.title }}、价格{{ book.price }}、出版社{{ Website may be available for web development ideas }}、出版时间{{ book.date}}、分类{{ book.classify.category }}、作者{{author.name }}、操作(编辑、删除)字段,前6个字段以for循环形式将书籍遍历显示在表格中(第24~42行),作者可能有多个,因此使用for循环遍历在表格中(第33~35行)。
由于书籍数量较大,如果将所有书籍都在一个页面上显示会导致整个网站的用户体验非常差,因此在首页的设计上添加了分页显示的效果,使网站的整体体验更优化。具体如下:
上述代码实现了书籍分类信息的修改。第2~11行均属于{{block book_list}}块中。第2~3行是表单的头标签内容,通过{{ classify.id }}来控制提交数据的修改。第5~7行是书籍分类修改框,其中原始数据为{{classify.category }},修改之后可以单击‘修改’按钮(第9行)提交修改之后的表单,交由相关视图函数进行数据库修改,当不想修改时可单击‘取消’按钮(第10行)进行取消操作。 Ø图书管理页面设计
图书管理页面是显示书籍的管理信息的,其中页面设计主要包括addbook.html、editbook.html、query.html三个文件,第一个文件是添加书籍信息的显示页面,第二个文件是编辑书籍信息的显示页面,第三个是查询书籍信息的显示页面。 addbook.html
添加书籍信息页面数据量比较大,因此使用了表单来实现。
上述代码实现了添加书籍信息页面,整个表单包括书名、价格、出版社、出版日期、分类、作者信息。书名(第4~5行)、价格(第8~9行)、出版日期(第21~22行)是在输入框中手动输入,页面设计相对简单,此处不详细介绍。第12~18行是出版社信息,采用select标签(即下拉单选框)设计,使用for循环将数据库中出版社信息显示在下拉单选框中。第25~30行是分类信息的设计,设计模式与出版社信息相同。第34~40行是作者信息设计,采用select标签以及multiple="multiple"属性进行多行显示下拉多选框,其他设计模式与出版社信息相同。第42行的‘添加’按钮将表单信息提交到添加书籍的视图函数中进行书籍数据处理,并保存到数据库中。若不想添加可以单击‘取消’按钮(第43~44行),取消添加。 editbook.html
本系统还提供了书籍信息修改功能,因此需要书籍信息编辑的页面,接下来介绍编辑书籍信息页面设计。
上述代码实现了书籍信息修改页面,包含的内容与添加书籍信息页面内容类似,所不同的是,书籍信息修改页面通过触发编辑的书籍id即{{ book_obj.id }}将该书籍的信息显示在相应的字段信息上,如第4~6行的书名value={{ book_obj.title }}以及第14~24行的出版社,通过for语句与if语句来判断需修改的书籍中出版社id与表单中出版社中的id是否匹配,匹配则下拉单选框中值等于出版社名称,即{{ publish.name }};其他信息与之相同,此处不再赘述。修改完成之后通过单击第58行中‘修改’按钮提交表单到相应的视图函数,完成修改,并将修改之后的信息保存到数据库中,若不想修改可以单击‘取消’按钮(第59行),取消添加。 query.html
当需要在图书馆查找书籍时,因为书籍太多,如果没有相关索引,很难找到需要的书籍,因此本系统提供了书籍的查询功能,查询到的书籍在query.html页面中显示。Website may be available for web development ideas当需要在图书馆查找书籍时,因为书籍太多,如果没有相关索引,很难找到需要的书籍,因此本系统提供了书籍的查询功能,查询到的书籍在query.html页面中显示。
上述代码实现了查找到的书籍显示页面。第4~36行是使用for循环将查询到的书籍数据依次显示在表格中,最终显示在页面中。第5~35行是表格中显示的信息,包括表头以及数据信息。第6~15行是表格中表头信息,包括编号、书名、价格、出版社、出版时间、分类、作者和操作八个字段。第16~32行是显示书籍信息的,包括编号{{ forloop.counter }}、书名{{ book.title }}、价格{{ book.price }}、出版社{{ Website may be available for web development ideas }}、出版时间{{ book.date}}、分类{{ book.classify.category }}、作者{{author.name }}和操作(编辑和删除),第24~26行是将作者一一显示(书籍作者可能有多个)。第33~34行是显示查询失败信息(书籍信息不存在)。 Ø作者管理页面设计
在阅读书籍时,大部分的读者都会以作者为标准来判断书籍是否符合自己,或者书籍是否值得阅读,因此本系统将作者信息进行单独管理,添加了作者管理页面;其中页面设计主要包括两个文件:menu_author.html和menu_author_edit.html;前者是作者信息的显示页面,后者是作者信息修改页面。 menu_author.html
作者信息显示页面主要包括数据显示、分页和添加作者三部分内容组成。
注意:以上两部分代码(数据显示和分页)是编写在{{block book_list}}与{{endblock}}块中的。
作者信息添加完成以后是由Ajax技术传送到后台视图进行处理的,具体如下: