第一个django小项目

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

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.创建模板页面

项目代码

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laufing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值