Python教程之Django框架-视图集方式

Python教程之Django框架Django框架介绍终端命令功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Djan...
摘要由CSDN通过智能技术生成

Django框架介绍

python语言写的开源web开发的重量级框架,遵循MVT设计,不容易实现自定义。
特色是简便、快速的开发数据库驱动的网站,它强调代码复用,多个组件以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,使Django具有很强的可扩展性
MVT(Model-View-Template)
M: 数据库交互模块#
V: 控制器,控制所有模块#
T: web封装模块#

RESTful架构详解

一、设计理论:

  1. 具象的:每一个URL 返回 一种资源
  2. 表现:每种资源 都被指定了 具体数据格式
    (请求头中 Accept和Content-Type)
  3. 状态转换:前端和服务器交互过程中 请求状态和数据的变化
    HTTP协议请求状态和请求规范:
    • 常用:
      • (GET请求:获取资源)
      • (POST请求:新建资源)
    • 不常用:
      • (PUT请求:更新资源 前端提供改变的实参)
      • (PATCH请求:更新资源 前端提供改变的形参)
      • (DELETE请求:删除资源)
      • (HEAD请求:获取资源(原始数据))
      • (OPTIONS请求:获取前端可以操作的资源信息)

二、设计规范:

  1. 域名:尽量将API接口部署在专用域名之下
    例:https://api.example.com
  2. 版本:在URL中 区分API版本
    例:http://域名/app/1.0/
  3. 路由路径:资源作为网址,只能有名词(复数),不能有动词,而且所用名词与数据库的表名对应
    例:
    • GET请求: /数据表名 :获取 所有资源
    • POST请求: /数据表名 :新建 资源
    • GET请求: /数据表名/4 :获取 4号资源
    • PUT请求: /数据表名/4 :更新 4号资源
    • DELETE请求: /主键表名/ID/外键表名/ID:删除 指定主键记录关联外键记录
  4. 过滤信息:API提供路由参数 过滤返回结果
    例:?page=2&per_page=100:指定第几页,以及每页的记录数。
  5. 状态码:
    例:
     200 OK - [GET]:服务器成功返回用户请求的数据
     201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
     202 Accepted - []:表示一个请求已经进入后台排队(异步任务)
     204 NO CONTENT - [DELETE]:用户删除数据成功。
     400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作
     401 Unauthorized - [
    ]:表示用户没有权限(令牌、用户名、密码错误)。
     403 Forbidden - [] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
     404 NOT FOUND - [
    ]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
     406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
     410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
     422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
     500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
  6. 错误处理:如果状态码是4xx,服务器就应该向用户返回出错信息
    例:{error: “错误提示信息”}
  7. 返回结果的数据规范:针对不同请求状态和路由地址,服务器向用户返回内容应该遵循一定规范
    例:
     GET /collection:返回资源对象的列表(数组)
     GET /collection/resource:返回单个资源对象
     POST /collection:返回新生成的资源对象
     PUT /collection/resource:返回完整的资源对象
     PATCH /collection/resource:返回完整的资源对象
     DELETE /collection/resource:返回一个空文档
  8. 返回结果的超媒体链接:返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么
    例:{“current_user_url”: “https://api.github.com/user”, …}
  9. 其他:服务器返回的数据格式,应该尽量使用JSON,避免使用XML

三、核心流程:
1. 序列化(输出):数据库对象 → python数据(比如JSON)
2. 操作数据库
3. 反序列化(输入):请求数据→验证→ python数据(比如JSON)

① 项目搭建(终端中)

一、安装:

  1. 安装Django框架:pip3 install django==1.11.11
  2. 安装DRF框架:pip3 install djangorestframework

二、创建 Django项目:

  1. 创建工程:django-admin startproject 工程名
    (在当前目录下 生成 工程配置文件)
  2. 启动工程服务器(终端):python3 manage.py runserver 「ip:端口」
    (默认IP是127.0.0.1 默认端口为8000)
    (默认Debug模式启动 项目文件变动 服务器自动重启)
  3. 重启工程服务器:sudo service mysql restartxx
  4. 创建子应用:
    方式一:python3 manage.py startapp 子应用模块名
    (会检索 已注册的子应用模块 检索错误 会报ImportError导包异常)
    方式二:django-admin startapp 子应用模块名
    (站点创建)

三、shell命令模式: python3 manage.py shell

② 项目配置(setting.py文件中)

一、注册 DRF框架 和 子应用(INSTALLED_APPS中):

  1. 工程 注册 DRF框架:'rest_framework',
  2. 工程 注册 子应用:'子应用模块名.apps.子应用模块名Config',

二、注册 视图集(子应用模块的urls.py文件中):

  1. 子应用 注册 视图集(DRF框架提供-路由器注册):
from rest_framework.routers import DefaultRouter/SimpleRouter   #导入 路由器#

router = DefaultRouter()/SimpleRouter()      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值