# Intelligent Book Management Platform **Repository Path**: hjj1433/book ## Basic Information - **Project Name**: Intelligent Book Management Platform - **Description**: 小项目练手。。。。。。。。。。。。。。。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-09 - **Last Updated**: 2023-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: 智能图书管理平台 ## README 智能图书平台实现: 技术使用: 前端:HTML5、CSS3、Javascript、Bootstrap框架; 后端:Flask框架、Mysql数据库 其他:科大讯飞接口调用使用、爬虫基础、Spider框架、gitee仓库协同开发 1.登录功能login路由: 用户登录 管理员登录 2.注册功能register路由: 用户注册 3.登录验证admin路由: 通过判断是否为管理和用户来跳转页面 4.注销功能logout路由: 注销过后返回页面无法使用功能点击将返回登录页面 5.数据库检查功能check_db_connection路由: 可通过自定义路由/check_db_connection来进行检查数据库是否连接成功 6.图书查找功能search路由: 通过该功能能对所有图书信息进行查找并分别显示在管理员和用户的主页 7.用户功能: 一:用户主页功能查看index_user路由: 通过改功能用户可以查看实时书籍信息对书籍进行借阅和搜索 二:实时修改用户主页借阅信息user_state/路由: 通过该功能刷新用户主页借阅信息当用户借阅后立马刷新 三:用户查看个人借阅信息功能user_return_book路由: 通过该功能用户可以查看自己借阅了多少的信息 四:用户归还功能return_book/路由: 通过该功能用户可以实现归还图书并且实时刷新 五:用户借阅页面分页功能page_user_state/路由: 通过该功能实现用户页面得到该用户的借阅信息实现分页的功能 8.管理员功能: 一:管理员主页功能查看index路由和index2路由: 通过该功能管理员可以实时查看当前所有书籍的信息和用户借阅记录来对图书管理系统进行实时控制 二:图书批量添加功能add_book路由和addnumer路由结合使用: 通过该功能可以设置自定义插入图书的数量再添加内容然后实时刷新数据库 三:编辑图书信息功能edit_book/路由: 通过该功能直接实现对图书信息的更新(实现编辑修改只针对未借阅的书籍信息,对已经借阅的书籍无法修改内容,只修改借阅状态) 四:删除图书信息功能delete_book/路由: 通过该功能实时对数据库进行更新删除操作内容 五:管理查阅用户功能search_user路由: 通过该功能管理员可以从前端提交的搜索用户名来得到查阅该用户的借阅信息功能,如果没用将不会发生改变并且搜索框会现实无用户 六:管理查阅用户分页路由page_admin_state//路由: 通过该功能能实现管理员单独查找搜索用户的数据信息,并提供分页的能力,统计搜索用户的信息总数 9.用户人脸登录功能face_login路由: 通过该功能用户可以对在人脸注册页面注册的人脸来进行登录功能 10.用户人脸信息录入功能face_register路由: 通过该功能用户可以上传人脸图片在后端进行训练得到模型然后返回到登录页面 11.智能问答小助手页面 通过该功能页面可以实现实时和OpenAI公司开发的ChatGpt4进行对话问答,也可以让他根据用户喜好推荐书籍之类 数据来源: 基础书籍信息来源:https://www.dushu.com/lianzai/1115_1.html 图片书籍信息来源:https://books.toscrape.com/catalogue/page-1.html 一些参数的说明情况 Jinja2 模板引擎,Flask 默认使用的模板引擎 格式:{% %} {% %} index中 : {% if current_user.is_authenticated %} {% endif %} 功能:检查当前用户是否已经登录,如果是,则显示一个注销链接,该链接将重定向到logout路由 {% for book in books %} {% endfor %} 功能:实现遍历数据库中的书籍信息 {% if page_num > 1 %} {% endif %} {% if i == page_num %} {% else %} {% endif %} {% endfor %} {% if page_num < (total//per_page)+1 %} {% endif %} page_num表示当前页码,total表示总数据量,per_page表示每页显示的数据量 功能:根据数据量来判断显示信息和每页显示的数据实现分页的功能 app中: 警告:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. Flask自带的服务器非常方便,因为它提供了自动重载和调试功能。然而,这个服务器并不适合生产环境,因为它没有针对性能和安全性进行优化。 解决:在生产环境中,您应该使用一个专门的WSGI服务器,如Gunicorn、uWSGI或mod_wsgi。这些服务器为生产环境提供了更好的性能、安全性和稳定性。 总之,这个警告对于开发环境没有影响,但在生产环境中,请确保切换到一个适用于生产的WSGI服务器 @app.route() 是 Flask 中的一个装饰器,它用于将特定的 URL 路径映射到相应的视图函数。当用户访问与该路由装饰器匹配的 URL 时, Flask 会自动调用相应的视图函数,并将其返回值作为 HTTP 响应发送给用户。 @login_required 确保用户已登录才能使用系统功能,我的理解登录验证 @render_template() 是 Flask 中的一个函数,它用于从模板文件(通常是 HTML 文件)生成一个响应,并将一些变量传递给模板。 它使用 Flask 默认的模板引擎(Jinja2)来渲染模板,并返回一个字符串,这个字符串是模板渲染后的结果。然后,这个字符串可以作为 HTTP 响应返回给客户端。 我的理解它是在指定HTML文件进行传参和渲染 redirect() 函数用于生成一个 HTTP 重定向响应。它接受一个参数,即目标 URL,然后返回一个包含重定向信息的 HTTP 响应。 url_for() 函数用于生成指向 Flask 视图函数的 URL。它接受一个参数,即视图函数的名称(作为字符串),并返回一个相对或绝对 URL,该 URL 可以用于在应用内进行导航。 redirect(url_for())用于在视图函数中重定向到另一个路由。 我的理解它的作用是页面跳转即路由重定项