Django框架

279 阅读2分钟

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

django 学习网站 css布局学习

书架项目

需求分析: 请求地址:/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出版社表 在这里插入图片描述

开发步骤

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

下一篇:Django常见问题