1、需求

作业需求:
1.列出图书列表、出版社列表、作者列表
2.点击作者,会列出其出版的图书列表
3.点击出版社,会列出旗下图书列表
4.可以创建、修改、删除 图书、作者、出版社


踩分点:
1.满足需求1,2,3,4 得分85
2.代码写的健壮、清晰,页面效果实现的好,得分90-95

2、流程图

3、README.md

基于django的图书管理系统
--------------- ### 一、概要 欢迎您使用该图书管理系统,希望在您使用的过程中体验到便捷和愉快的使用感受,并对我们的软件提出您发现的问题和建议,谢谢。
联系邮箱:liangshuo1994@outlook.com **注意事项:** 1、相关文件说明: flow.png 项目流程图
tree.txt 该项目的所有文件
requirements.txt 依赖包文件
img-floder 项目效果图 2、环境安装: 请您在python官网下载python3.5以上版本进行安装。 3、当前程序的所有依赖包及其精确版本号。 请您打开CMD控制台,到依赖包同目录下,执行:pip install -r requirements.txt 4、测试用例文档给您提供了更好的测试思路,您可以通过测试用例达到更好的测试效果 5、该项目博客地址:
[http://www.cnblogs.com/venicid/p/9286796.html] 6、github地址:
[https://github.com/venicid/BMS] 7、效果图 ![BMS效果图](https://github.com/venicid/BMS/blob/master/img-floder/book_index.png) ### 二、需求与功能 1、需求 1) 列出图书列表、出版社列表、作者列表
2) 点击作者,会列出其出版的图书列表
3) 点击出版社,会列出其下的图书列表
4) 可以创建、修改、删除 图书、作者、出版社 2、功能实现概述 login_reg模块
1) 主页
/
2) 注册
/reg/
3) 登录
/login/
4) 注销
/logout/
book模块
1)图书主页
/book/index/
2)图书操作
/book/book_list/ # 图书list
/book/add_book/ # 添加图书
/book/edit_book/30/ # 编辑图书
/delete_book/30/ # 删除图书
3)作者操作
/book/author_list/ # 作者list
/book/add_author/ # 添加作者
/book/edit_author/15/ # 编辑作者
/book/delete_author/15/ # 删除作者
/book/author2book/15/ # 查看该作者出版过的所有图书
4)出版社操作
/book/publish_list/ # 出版社list
/book/add_publish/ # 添加出版社
/book/edit_publish/16/ # 编辑出版社
/book/delete_publish/16/ # 删除出版社
/book/publish2book/16/ # 查看该出版社出版过的所有图书 404错误
/^.*/ # url not found ### 三、所用技术概述 1、验证用户是否登录:用户认证组件 实质:session会话跟踪技术
from django.contrib import auth
通过中间件auth_middleware.py,采用白名单,对url进行控制,替代装饰器@login_requierd,否则每一个函数都有要加装饰器。
from django.utils.deprecation import MiddlewareMixin 2、验证字段:表单forms组件 对每个数据库中的字段进行校验,返回error
from django import forms 3、自定义分页器 分页器Paginator.py
解耦
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger 4、记录日志log settings配置文件,终端打印sql语句
mylog.py 日志文件,解耦,终端打印并在log文件记录用户操作
import logging 5、模板继承 {% extends 'base.html' %} {% block site-header %}
{% endblock %} 6、ORM表关系 一对一(author authordetail)
删除author,对应删除authordetail表的信息 一对多(book publish)
删除出版社,关联删除出版过的所有的本书 多对多(book author)
删除author,不会删除该作者出版过的书 7、注意点: 1) 时区:
settings.py配置
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai' 2) 静态文件目录
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
] ### 四、鸣谢 感谢在开发过程中的老师和同学们的帮助。

4、代码:github地址

https://github.com/venicid/BMS

11 基于django的图书管理系统 多表的更多相关文章

  1. Python高级进阶(二)Python框架之Django写图书管理系统(LMS)

    正式写项目准备前的工作 Django是一个Web框架,我们使用它就是因为它能够把前后端解耦合而且能够与数据库建立ORM,这样,一个Python开发工程师只需要干自己开发的事情就可以了,而在使用之前就我 ...

  2. 基于Django的图书推荐系统和论坛

    基于Django的图书推荐系统和论坛 关注公众号"轻松学编程"回复"图书系统"获取源码 一.基本功能 登录注册页面 基于协同过滤的图书的分类,排序,搜索,打分功 ...

  3. Django学习——图书管理系统图书修改、orm常用和非常用字段(了解)、 orm字段参数(了解)、字段关系(了解)、手动创建第三张表、Meta元信息、原生SQL、Django与ajax(入门)

    1 图书管理系统图书修改 1.1 views 修改图书获取id的两种方案 1 <input type="hidden" name="id" value=& ...

  4. 基于jsp+servlet图书管理系统之后台万能模板

    前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...

  5. 基于jsp+servlet图书管理系统之后台用户信息修改操作

    上一篇的博客写的是查询操作,且附有源码和数据库,这篇博客写的是修改操作,附有从头至尾写的代码(详细的注释)和数据库! 此次修改操作的源码和数据库:http://download.csdn.net/de ...

  6. 基于jsp+servlet图书管理系统之后台用户信息删除操作

    上一篇的博客写的是修改操作,且附有源码和数据库,这篇博客写的是删除操作,附有从头至尾写的代码(详细的注释)和数据库! 此次删除操作的源码和数据库:http://download.csdn.net/de ...

  7. Django练习——图书管理系统

    Django图书管理系统 创建一个项目 1. django-admin startproject 图书管理 2. cmd 命令终端下创建一个app python manage.py startapp ...

  8. 基于jsp+servlet图书管理系统之后台用户信息插入操作

    前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...

  9. Django(图书管理系统)

    图书管理系统 注意事项 1.models 要创建好,规划好自己的表,以及各种表关系 2.url正则要写好 3.settings的配置 4.利用bootstarp 进行布局更漂亮哦 5.注意orm  各 ...

随机推荐

  1. Jmeter入门--安装教程

    jmeter简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动 ...

  2. MySQL案例09:Last_IO_Error: Got fatal error 1236 from master when reading data from binary log

    刚处理完“挖矿”事件,在做最后一个MySQL NBU备份的时候,发现从库有问题,好奇的是怎么主从状态异常没有告警呢?先不管这么多了,处理了这个问题再完善告警内容. 一.错误信息 从库show slav ...

  3. 转:ClickOnce部署Winform程序的方方面面

    1. ClickOnce简介 微软官方对ClickOnce的解释是:ClickOnce 是一项部署技术,您可以利用这项技术来创建基于 Windows 的自行更新的应用程序,并且安装和运行这类应用程序所 ...

  4. Linux 文件特殊权限详解[suid/sgid/t]

    setuid(suid): 针对命令和二进制程序的,当普通用户执行某个(passwd)命令的时候,可以拥有这个命令对应用户的权限, 即让普通用户可以以root用户的角色执行程序或命令. setgid( ...

  5. Vue安装以及Vue项目创建以及Vue Devtools安装

    这几天一直在学习Vue.js框架. 因为以前没有前端项目的经验,也没学过什么前端框架,所以,对于vue.js的学习有些不知所措. 在vue.js官网看教程,按照教程指点,可以不用脚手架开发,也可以搭建 ...

  6. windows下PyCharm安装及使用

    一.首先安装pycharm,可以参考这篇文章:http://www.jianshu.com/p/042324342bf4 1.win10_X64,其他Win版本也可以. 2.PyCharm版本:Pro ...

  7. 一、Vim编辑器 二、用户和组管理 三、软件的安装(jdk,mysql) 四、Shell编程

    一.Vim编辑器的使用 1. vim编辑器的运行模式 编辑模式:等待用户编辑命令的输入 插入模式:编辑文本内容 命令模式:执行命令 2. 使用 :vim 文件名 3. 查看当前vim编辑器介绍:vim ...

  8. 网络编程--Socket(套接字)

    网络编程 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中 有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后 如何可靠高效的进行数据传输.在 ...

  9. 解决数据库自增ID的问题

    (1)设置主键自增为何不可取这样的话,数据库本身是单点,不可拆库,因为id会重复. (2)依赖数据库自增机制达到全局ID唯一使用如下语句:REPLACE INTO Tickets64 (stub) V ...

  10. [转] pom.xml 配置详解

    From:http://blog.csdn.net/ithomer/article/details/9332071 Maven是一个项目管理工具,通过pom.xml来实现. pom.xml 配置文件 ...