django是什么
使用python 开发的企业级web开发框架,Django 采用了 MVT 的软件设计模式,即模型(Models),视图(Views)和模板(Templates)
常用的软件设计模式:
MVC:
Model 模型层,操作数据库,进行数据的读写
View 视图层, 页面效果展示
Controller 控制器,接收请求、处理请求、准备数据、控制视图展示
目的:
降低模块间的耦合度,提高系统的可扩展性
django 的安装
#win
python -m pip install django==2.2.12
#linux
sudo pip3 install django==2.2.12
VM虚拟机 提取码:5vsa
linux镜像 提取码:6pou
书架项目
需求分析:
请求地址:/index/
请求方式:get
响应页面index.html:
实现功能
1. 显示所有书 --书名及作者信息等
2.更新书籍
3.删除书籍
4.添加书籍
开发模式:前后端不分离
开发环境
python 3.6 django 2.2.12 pycharm 2019.3.1 Community Edition Ubuntu 7.5.0-3ubuntu1~18.04
系统设计

详细设计
显示书籍模块
URL: /index/ /book/list 请求方式:get 视图函数: index,操作模型层查询db,获取数据 data={"title":"三国演义","author":"罗贯中","publish_time":"清华大学出版社"} 不显示is_delete 字段为True 的书籍
响应模板页面:index.html

更新模块
URL: /book/update/
请求方式: get
API: /book/update/?title=xxx 查询字符串
视图函数:
update,处理get 请求
响应数据字段 id,title,author,publish_time
data = {"id":"1","title":"三国演义","author":"罗贯中","publish_time":"2021-04-03 08:32:19"}
响应模板update.html:
点击 执行ajax异步加载
$.ajax({
"url":"http://127.0.0.1:8000/book/update/",
"data":JSON.stringify(data),
"contentType":"application/json",
"type":"post",
"dataType":"json",
"sucess":function(res){
if (res.code == 200){
alert(res.data)
}else{alert(res.error)}
//重定向
window.location.href="/book/list"
},
})
ajax异步, 请求方式: post
API: /book/update/
提交的数据: data = {"id":"1","title":"三国演义11","author":"罗贯中","publish_time":"2021-04-03 08:32:19"} json 字符串(JSON.stringify(data))
视图函数: update,数据更新的逻辑处理 响应json {"code":200,"data":"更新成功"} {"code":10011,"data":"更新失败"}
删除模块
URL: /book/delete/
请求方式: ajax-->get
API: /book/delete/?title=xxx 查询字符串
视图函数: delete,处理get 请求 将指定数据的is_delete 字段设置为True 采用伪删除的方式,不显示这类书籍
响应json: {"code":200,"data":"删除成功"} {"code":10012,"data":"删除失败"}
前端接收响应,并重定向到/index/
添加模块
URL: /book/add/
请求方式: get /book/add/ 超链接
post /book/add/ ajax
data = {"title":"机器学习","author":"周志华","publish_time":"2021-01-01 12:30:10","publish_depart":"1"} 其他字段默认
视图函数: add,处理get 请求 响应 add_book.html
处理post 请求 响应json: {"code":200,"data":"添加成功"} {"code":10013,"data":"添加失败"}
前端接收响应,并重定向到/index/
错误编码
10010,数据不在数据库中 10011,更新数据失败 10012,删除数据失败 10013,添加数据失败 10014,信息不完整(添加书籍时) 10015,书籍已存在(添加书籍时)
数据库设计
创建bookstore数据库
create database bookstore default charset utf8;
book_table书籍表
publish_depart出版社表

开发步骤
1.创建项目
2.配置项目
3.创建应用
4.配置分布式路由
5.定义视图函数
6.创建模板页面