简单的前后端交互
django是什么
使用python 开发的企业级web开发框架,Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template)
常用的软件设计模式:
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:
\space\space\space
/index/
\space\space\space
/book/list
请求方式:get
视图函数:
index,操作模型层查询db,获取数据
data={“title”:“三国演义”,“author”:“罗贯中”,“publish_time”:“清华大学出版社”}
不显示is_delete 字段为True 的书籍
响应模板页面:index.html
更新模块
URL:
\space\space
/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:
\space\space
/book/delete/
请求方式:
ajax–>get
API:
/book/delete/?title=xxx 查询字符串
视图函数:
delete,处理get 请求
将指定数据的is_delete 字段设置为True
采用伪删除的方式,不显示这类书籍
响应json:
{“code”:200,“data”:“删除成功”}
{“code”:10012,“data”:“删除失败”}
前端接收响应,并重定向到/index/
添加模块
URL:
\space\space
/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出版社表