django如何写api接口(django生成接口文档)

如题所述

第1个回答  2024-09-04

导读:今天首席CTO笔记来给各位分享关于django如何写api接口的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

django怎么使用网站提供的api借口

webservice其实就是webapi,不过为了便于统一使用了通用的数据格式,比如xml。所以你完全可以自己使用一个第三方xml库来自己构建这样的环境,或者使用djangorestframework这样的第三方app来直接帮你快速开发

DjangoRESTframework框架之GET,POST,PUT,PATCH,DELETE等API请求接口设计

一、API接口功能需求:设计一些接口URL,让前端/客户请求这个URL去获取数据并显示,更改数据(增删改查),达到前后端分离的效果

二、设计逻辑:通过http协议请求方式GET、POST、PUT、PATCH、DELETE设计符合RESTful规范的api接口也就是URL

三、简易源码:

3.序列化serializers

#导入模型类和rest_framework序列化模块serializers

from.modelsimportArticle

fromrest_frameworkimportserializers

#定义序列化类,使用继承ModelSerializer方法

classArticleSerializer(serializers.ModelSerializer):

classMeta:

model=Article#指定序列化的模型类

fields='_all_'#选取序列化字段,此处可自行选取字段

4.视图函数views

fromdjango.httpimportHttpResponse

fromdjango.views.decorators.csrfimportcsrf_exempt

from.modelsimportArticle

from.serializersimportArticleSerializer

fromrest_framework.renderersimportJSONRenderer

fromrest_framework.parsersimportJSONParser

#调用csrf装饰器csrf_exempt模块,解决跨域访问问题

#JSONRenderer它将Python的dict转换为JSON返回给客户端

#JSONParser负责将请求接收的JSON数据转换为dict

#写法一

#在需要跨域的视图上调用装饰器@csrf_exempt

@csrf_exempt

defarticle_list(request):

ifrequest.method=='GET':

arts=Article.objects.all()#获取模型类数据

ser=ArticleSerializer(instance=arts,many=True)#序列化数据instance

#下一步用rest_framework方法里的JSONRenderer方法渲染数据

json_data=JSONRenderer().render(ser.data)

returnHttpResponse(json_data,content_type='application/json',status=200)

#写法二

classJSONResponse(HttpResponse):

def_init(self,data,**kwargs):

content=JSONRenderer().render(data)

kwargs['content_type']='application/json'

super(JSONResponse,self)._init(content,**kwargs)

#根据id进行增删改操作接口

@csrf_exempt

defarticle_detail(request,id):

try:

art=Article.objects.get(id=id)

exceptArticle.DoesNotExistase:

returnHttpResponse(status=404)

备注:

*写法二中定义JSONResponse类将返回的数据data与content_type返回类型做了封装

*API接口

GET/POST

GET/PUT/PATCH/DELETE

*Postman测试效果图

(二)DjangoREST实践:最简单的RESTAPI实现

本小节大概要花费10分钟。

在前面,我们已经学会了Django如何获得HTTP请求中的内容,以及如何获取HTTP请求的body。接下来我们就来写一个最简单的API。这个API要求在请求的HTTPbody中放入JSON格式的文本,并在解析文本后进行处理,返回JSON格式的数据。

我们定义API的URL为/api/sum/,功能是为两个数求和,并返回。

request中body的格式为:

response的格式为:

response中,我们的数据结构稍微有点复杂。

之后我们所有的RESTAPI都会以这种统一的格式返回数据,两个不同RESTAPI所返回内容的主要区别在data域上。

在(一)中,我们建立了一个叫做task_platform的Django项目。目录结构如下:

进入Django项目目录,并编辑task_platform中的views.py文件。

其中:

编辑task_platform/urls.py,将我们刚刚实现的API处理函数加入到路由表中。

运行Djangoserver:

用Postman模拟请求,可以看到:

经过练习,我们已经了解如何实现一个简单的RESTAPI了!我们之后的API都是建立在这个通讯模型之上的(当然还有一些使用GET方法的API)。在后面,我们将看看,如何通过这种模式,实现一个用户认证系统的RESTAPI。

如何用python快速做出一个api服务

python轻量级的框架flask

可以让你在两分钟内,搭建出一个简单的

api接口服务

轻量级不代表功能简单,容易上手

它的优势是,模块化,易扩展,定制性强

比如:一个最简单api接口2分钟搞定

加入你需要加入登录验证功能

加入页面跳转功能呢

如果想要渲染加载前段页面呢

flask框里有你意想不到的插件,让你完成最够强大

的功能,怎么样,赶紧来试试吧

DjangoRESTframework(一):接口与规范

1)用api关键字标识接口url

2)接口数据安全性决定优先选择https协议

3)如果接口有多个版本存在,需要在url中标识体现

4)接口参数的数据源称之为资源,在url中一般采用资源复数形式,一个接口可以概括对该资源的多种操作方式

5)请求方式有多种,用一个url处理如何保证不混乱-通过请求方式标识操作资源方式

2)资源的状态码文字提示

4)不能直接返回的资源(子资源、图片、视频等资源),返回该资源的url链接

结语:以上就是首席CTO笔记为大家整理的关于django如何写api接口的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

logo设计

创造品牌价值

¥500元起

APP开发

量身定制,源码交付

¥2000元起

商标注册

一个好品牌从商标开始

¥1480元起

公司注册

注册公司全程代办

¥0元起

    官方电话官方服务
      官方网站八戒财税知识产权八戒服务商企业需求数字市场
相似回答
大家正在搜