Python学习笔记(十一)-- Django API RESTful
2022/8/29 1:22:48
本文主要是介绍Python学习笔记(十一)-- Django API RESTful,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. Django rest framework 之序列化
https://www.cnblogs.com/midworld/p/11380194.html
2.写API的三个重点
(1)路由;(2)视图类(提供给用户访问相当于原来的视图函数);(3)序列化类(提供给视图类使用,把对象序列化成Json)
https://www.bilibili.com/video/BV1H4411W7iL?p=64&spm_id_from=pageDriver
3.序列化类
from rest_framework import serializers
注意:使用rest_framework,需先 settings.py的INSTALLED_APPS中先添加rest_framework。
# Application definition INSTALLED_APPS = ( ......... "rest_framework", ........ )
4.一个Model类至少对应一个序列化类,继承于serializers.ModelSerializer。
序列化类的功能是把对应类型的对象转换成Json。
- model 指明该序列化器处理的数据字段从模型类参考生成
- fields 指明该序列化器包含模型类中的哪些字段,fields = "__all__"指明包含所有字段
5.视图类
from rest_framework import viewsets
- queryset 指明该视图集在查询数据时使用的查询集
- serializer_class 指明该视图在进行序列化或反序列化时使用的序列化器
6.路由Routers
对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用路由Routers来帮助我们快速实现路由信息绑定、调用
REST framework提供了两个router类
- SimpleRouter
- DefaultRouter
创建router对象
from rest_framework import routers router = routers.DefaultRouter()
7.调试/文档 工具
7.1 安装
pip install coreapi
7.2 添加路由
from rest_framework.documentation import include_docs_urls urlpatterns = [ ... 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地址。
(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/guoxiaohua |
int | 匹配0或者任何正整数。返回一个int | "page/<int:page>"匹配/page/100 |
slug | 匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签 | "detail/<slug:sl>"匹配/detail/this-is-django |
path | 匹配非空字段,包括路径分隔符’/‘ | "v1/users/<path:ph>"匹配/v1/users/a/b/c |
15.路由配置--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
这篇关于Python学习笔记(十一)-- Django API RESTful的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享