位置: IT常识 - 正文

Python学习笔记(十一)-- Django API RESTful(python初学笔记)

编辑:rootadmin
1. Django rest framework 之序列化 https://www.cnblogs.com/midworld/p/11380194.html 2.写API的三个重点 (1)路由;(2)视图类(提供给用户访问相当于原来的视图函数);(3)序列化类(提供给视图类使用,把对象序列化成Jso ... 1. Djangorest framework 之序列化https://www.cnblogs.com/midworld/p/11380194.html2.写API的三个重点

推荐整理分享Python学习笔记(十一)-- Django API RESTful(python初学笔记),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python教程详细,python系列教程,python自学笔记,python自学笔记,python自学笔记,python自学笔记,python初学笔记,python初学笔记,内容如对您有帮助,希望把文章链接给更多的朋友!

(1)路由;(2)视图类(提供给用户访问相当于原来的视图函数);(3)序列化类(提供给视图类使用,把对象序列化成Json)

https://www.bilibili.com/video/BV1H4411W7iL?p=64&spm_id_from=pageDriver3.序列化类from rest_framework import serializers

注意:使用rest_framework,需先settings.py的INSTALLED_APPS中先添加rest_framework。

# Application definitionINSTALLED_APPS = ( ......... "rest_framework", ........)

4.一个Model类至少对应一个序列化类,继承于serializers.ModelSerializer。

序列化类的功能是把对应类型的对象转换成Json。

model 指明该序列化器处理的数据字段从模型类参考生成fields 指明该序列化器包含模型类中的哪些字段,fields = "__all__"指明包含所有字段5.视图类from rest_framework import viewsetsqueryset 指明该视图集在查询数据时使用的查询集serializer_class 指明该视图在进行序列化或反序列化时使用的序列化器6.路由Routers

对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用路由Routers来帮助我们快速实现路由信息绑定、调用

REST framework提供了两个router类

SimpleRouterDefaultRouter

创建router对象

from rest_framework import routersrouter = routers.DefaultRouter()7.调试/文档 工具

7.1 安装

pip install coreapi

7.2 添加路由

from rest_framework.documentation import include_docs_urlsurlpatterns = [...path('docs/', include_docs_urls(title='站点页面标题'))]8.django-admin

成功安装Django后,虚拟机终端会有 django-admin命令。

执行django-admin startproject 项目名 即可创建出对应项目文件夹。

这个以项目命名的文件内包含一个 manage.py文件 和一个与项目名同名的文件夹。

9.获取当前程序的文件名和路径import os

获取当前程序的文件名

os.path.abspath(__file__)

文件夹的名字

os.path.dirname(os.path.abspath(__file__))

所在文件夹的父目录

os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

以上代码一般用户获取项目的绝对路径

10.URL

定义:统一资源定位符 Uniform Resource Locator。

作用:用来表示互联网上某个资源的地址。

URL的一般语法格式:

protocol://hostname[:port]/path[?query][#fragment]

注:[]代表其中的内容可省略。例如默认的端口80,就可以省略不写。

(1)protocol:

* http 通过HTTP访问该资源。格式为 http://

* https 通过安全的https访问该资源。格式为https://

* file 资源是本地计算机上的文件。格式为 file://

(2) hostname

是指存放资源的服务器的域名系统(DNS)主机名、域名或者IP地址。

Python学习笔记(十一)-- Django API  RESTful(python初学笔记)

(3)port

整数,可选,省略时使用默认端口。

各种协议的默认端口不同,如http的默认端口号为80.

(4)path 路由地址

有零或者多个“/” 符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

路由地址决定了服务器端会如何处理这个请求。

(5)query(查询)

可选,用于给静态网页传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。

(6)fragment(信息片段)

字符串,用于指定网络资源中的片段。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。使用#来表示。

11.URL 请求处理过程

step 1 :Django 从配置文件中,根据ROOT_URLCONF找到 主路由文件;默认情况下,该文件在项目同名目录下的urls文件中。

step 2:Django 加载主路由文件中的urlpatterns变量【包含很多路由的数组】。

step 3:依次匹配urlpatterns中的path,匹配到第一个合适的中断后续匹配。

step 4;匹配成功,调用对应的视图函数处理请求,返回相应;

匹配失败,返回404响应。

12.视图函数

视图函数是用于接收一个浏览器请求(HttpRequest对象)并通过HttpResponse对象返回响应的函数。此函数可以接受浏览器请求并根据业务逻辑返回相应的响应内容给浏览器。

语法为

def XXX_view(request[,其它参数...]) return HttpResponse对象13.路由配置--path()函数

导入

from django.urls inport path

语法

path(route,views,name=None)

参数

route:字符串类型,匹配的请求路径;

views:指定路径所对应的视图处理函数的名称;

name:为地址起别名,在模板中地址反向解析时使用。

14.路由配置--path转换器

语法:<转换器类型:自定义名>

作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数。

例如:path('page/\<int:page>',views.xxx)

转化器类型作用样例str匹配除了’/‘之外的非空字符串“v1/users/<str:username>”匹配/v1/users/guoxiaohuaint匹配0或者任何正整数。返回一个int"page/<int:page>"匹配/page/100slug匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签"detail/<slug:sl>"匹配/detail/this-is-djangopath匹配非空字段,包括路径分隔符’/‘"v1/users/<path:ph>"匹配/v1/users/a/b/c15.路由配置--re_path()

在url的匹配过程中可以使用正则表达式进行精确匹配。

语法:re_path(reg,view,name=xxxx)

正则表达式为命名分组模式(?p<name>pattern);匹配提取参数后用关键字传参方式传递给视图函数。

https://blog.csdn.net/qq_41475058/article/details/112214991

https://www.bilibili.com/video/BV1Q14y1t71j?p=2&spm_id_from=pageDriver

本文链接地址:https://www.jiuchutong.com/zhishi/304700.html 转载请保留说明!

上一篇:phpcms如何上传视频(phpcms上传视频)

下一篇:Python创建生成器的两种方法(python生成器定义)

  • 爱奇艺怎么创建房间后邀请好友一起看(爱奇艺怎么创建房间和别人一起看视频)

    爱奇艺怎么创建房间后邀请好友一起看(爱奇艺怎么创建房间和别人一起看视频)

  • ios15空间音频怎么开(ios14.5空间音频)

    ios15空间音频怎么开(ios14.5空间音频)

  • 移动套餐强制退订方法(移动套餐强制退订申诉)

    移动套餐强制退订方法(移动套餐强制退订申诉)

  • vivo 23支持无线充电吗(vivox27支持无线)

    vivo 23支持无线充电吗(vivox27支持无线)

  • 在windows7中将中文输入方式切换到英文(在windows7中下列说法正确的是)

    在windows7中将中文输入方式切换到英文(在windows7中下列说法正确的是)

  • 电脑无法打开docx(电脑无法打开docx文档)

    电脑无法打开docx(电脑无法打开docx文档)

  • 华为手机来电不显示号码怎么办(华为手机来电不响铃是什么原因)

    华为手机来电不显示号码怎么办(华为手机来电不响铃是什么原因)

  • 华为所有媒体声音消失(华为所有媒体声音设置)

    华为所有媒体声音消失(华为所有媒体声音设置)

  • r31200相当于什么i5(r31200相当于什么cpu)

    r31200相当于什么i5(r31200相当于什么cpu)

  • qq手机备忘录在哪里(qq备忘录怎么导出电话号码)

    qq手机备忘录在哪里(qq备忘录怎么导出电话号码)

  • 苹果手机开机后短信怎么没有了(苹果手机开机后显示iphone已停用怎么办)

    苹果手机开机后短信怎么没有了(苹果手机开机后显示iphone已停用怎么办)

  • 相机mp是什么意思(相机mpx是什么意思)

    相机mp是什么意思(相机mpx是什么意思)

  • esc系统故障是什么意思(esc故障怎么办)

    esc系统故障是什么意思(esc故障怎么办)

  • word艺术效果怎么设置(word文档艺术效果在哪)

    word艺术效果怎么设置(word文档艺术效果在哪)

  • 电脑怎么不能上网(电脑怎么不能上传附件)

    电脑怎么不能上网(电脑怎么不能上传附件)

  • 荣耀手环3蓝牙怎么开(荣耀手环3蓝牙显示关闭)

    荣耀手环3蓝牙怎么开(荣耀手环3蓝牙显示关闭)

  • 网易云mv怎么没有下载(网易云怎么看不了mv了)

    网易云mv怎么没有下载(网易云怎么看不了mv了)

  • 苹果怎么用4g下载超过150m的应用(苹果怎么用4g下载超过200mb的软件)

    苹果怎么用4g下载超过150m的应用(苹果怎么用4g下载超过200mb的软件)

  • wps页面怎么删除(word怎么删除一整页包括内容)

    wps页面怎么删除(word怎么删除一整页包括内容)

  • 荣耀20nfc功能怎么使用(荣耀20nfc在哪里打开)

    荣耀20nfc功能怎么使用(荣耀20nfc在哪里打开)

  • huaweiMate 20cpu是什么品牌

    huaweiMate 20cpu是什么品牌

  • 华为p30手势设置(p30手势控制在哪里)

    华为p30手势设置(p30手势控制在哪里)

  • word批注(word批注模式怎么开)

    word批注(word批注模式怎么开)

  • 路由器管家怎么用?(路由器管家怎么登录)

    路由器管家怎么用?(路由器管家怎么登录)

  • usermod命令  修改用户账号信息(usermod修改密码)

    usermod命令 修改用户账号信息(usermod修改密码)

  • chfn命令  系统管理(命令行系统)

    chfn命令 系统管理(命令行系统)

  • ps字体怎么导入?(macps字体怎么导入)

    ps字体怎么导入?(macps字体怎么导入)

  • 旧面包车能跑长途吗
  • 海关进口啥意思
  • 私营独资企业交个税还是企税
  • 建筑业固定资产折旧费用科目是什么
  • 物业公司车位出租能开具什么发票
  • 减免附加税怎么填报
  • 报税成本费用怎么填
  • 房地产企业借款费用
  • 实物投资没有发票咋办
  • 工程维修费用怎么入账
  • 报关单增值税税单收货人更改
  • 合同印花税进哪个科目
  • 增值税专用发票和普通发票的区别
  • 直接快递到国外的货物如何收汇?
  • 期初数据科目期初余额怎么录入?
  • 坏账准备年末结账要结清吗
  • 总账建账科目顺序
  • win10 批量安装软件
  • php 钩子
  • php 语法
  • 收益性支出的项目有哪些
  • PHP:getallheaders()的用法_Apache函数
  • PHP:Memcached::append()的用法_Memcached类
  • 采购员出差预借差旅费时,应借记
  • 买二手房避税
  • laravel模板引擎
  • 非合理损耗怎么做分录
  • 增值税退税是否属于政府补助
  • Gumbel-Softmax完全解析
  • 详解php中的序列是什么
  • 社保基数跟个税差1仟多有风险吗
  • 第十四届中国大学生数学竞赛
  • web搜索与挖掘
  • Web 1.0、Web 2.0 和 Web 3.0 之间的比较
  • php for each
  • 小企业会计准则外币业务
  • 小规模季报所得税不超多少不用交税
  • 固定资产的原价包括增值税吗
  • 应交税费中应交企业所得税为负数怎么调报表
  • 非贸备案什么意思
  • 入库单如何做账分录
  • 其他应收款专项审计报告
  • 税款所属期止是怎么写
  • 表单数据提交时会触发什么事件
  • 采用汇兑的方式归还前欠货款
  • 收到发票怎么写摘要
  • 车间管理人员差旅费
  • 生产成本月末有余额资产负债表平衡吗
  • 补贴收入属于其他收益吗
  • 5万元买二手车什么品牌比较好
  • 息税前利润怎么算出来的
  • 租出的固定资产
  • 补提去年折旧费不需要调整所得税吗
  • 当月的银行日记账漏计怎么办
  • 汇算清缴步骤及处理方法
  • 付款后没有发票怎么办
  • 购买空调做账分录
  • sql语句查询去重
  • Windows Server 2008下高效域管理体验
  • 虚拟机ubuntu20.04
  • 苹果电脑怎么切换系统
  • win7桌面图标都不见了
  • ubuntu怎样调出命令行
  • win7系统怎么设置开机密码?
  • windows10预览版怎么样
  • shader cull
  • div+css网页布局实例
  • 简介英文
  • jquery实现复选框全选
  • node.js教程详细
  • shell脚本命令行参数
  • Node.js中的construct
  • vuex按需加载
  • js如何获取浏览器窗口大小
  • jquery div innerhtml
  • Qt Creater调试时一直出现:“DEBUGGER: Waiting for debug socket connect” 和“DEBUGGER: go to sleep”
  • python里的lambda怎么用
  • unity meshcollider
  • adb命令ls
  • 政务公开有何意义
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设