当前位置: 首页 > 编程笔记 >

Django+RestFramework API接口及接口文档并返回json数据操作

钮刚洁
2023-03-14
本文向大家介绍Django+RestFramework API接口及接口文档并返回json数据操作,包括了Django+RestFramework API接口及接口文档并返回json数据操作的使用技巧和注意事项,需要的朋友参考一下

系统:ubuntu18.04 x64

GitHub:https://github.com/xingjidemimi/DjangoAPI.git

安装

pip install django==2.1.5
pip install djangorestframework # rest api
pip install coreapi pygments markdown # 自动化接口文档

API示例

创建django项目

django-admin startproject DjangoAPI

创建应用

cd DjangoAPI

python manage.py startapp apiApp

项目代码

修改settings.py,添加应用到配置中

INSTALLED_APPS = [
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rest_framework', # 添加rest_framework应用
 'apiApp', # 添加apiApp应用
]

执行数据库迁移

python manage.py migrate

创建管理员,会提示输入用户名:ubuntu,邮箱:ubuntu@ubuntu.ubuntu,密码:ubuntu123456

python manage.py createsuperuser

修改/api/models.py,创建数据库模型。

from django.db import models

class Test(models.Model):
 name = models.CharField(u'姓名', max_length=100, default='no_name')
 sex = models.CharField(u'性别', max_length=10, default='male')
 age = models.CharField(u'年龄', max_length=3, default='0')

 def __unicode__(self):
  return '%d: %s' % (self.pk, self.name)

创建模型后执行:

python manage.py makemigrations # 生成数据库迁移文件

python manage.py migrate # 执行数据库迁移

修改/api/admin.py,写后台管理代码

from django.contrib import admin
from apiApp.models import Test
# Register your models here.

@admin.register(Test)
class BlogTypeAdmin(admin.ModelAdmin):
 list_display = ('pk', 'name') # 在后台列表下显示的字段

运行项目

python manage.py runserver

出现如下内容表明成功:

System check identified no issues (0 silenced).
January 23, 2019 - 08:28:09
Django version 2.1.5, using settings 'DjangoAPI.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

浏览器输入:

http://127.0.0.1:8000/ # 出现django成功的界面

http://127.0.0.1:8000/admin # 进入管理后台

序列化模型类,在/api/下创建serializers.py,返回json数据

from rest_framework import serializers
from apiApp.models import Test

class TestSerializers(serializers.ModelSerializer):
 class Meta:
  model = Test # 指定的模型类
  fields = ('pk', 'name', 'sex', 'age',) # 需要序列化的属性

修改/api/views.py,视图

from django.shortcuts import render
from rest_framework import viewsets
from apiApp.models import Test
from apiApp.serializers import TestSerializers


class TestViewSet(viewsets.ModelViewSet):
 # 指定结果集并设置排序
 queryset = Test.objects.all().order_by('-pk')
 # 指定序列化的类
 serializer_class = TestSerializers

修改/urls.py/,配置主路由

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
 path('admin/', admin.site.urls),
 path('', include('apiApp.urls')), # 添加应用的路由地址
]

在/api/下创建urls.py,配置应用路由

from django.conf.urls import include
from django.urls import path
from rest_framework import routers
from apiApp import views
from rest_framework.documentation import include_docs_urls

API_TITLE = "API Documents"
API_DESCRIPTION = 'API Information'


# 定义路由地址
route = routers.DefaultRouter()

# 注册新的路由地址
route.register(r'test', views.TestViewSet)

# 注册上一级的路由地址并添加
urlpatterns = [
 path('', include(route.urls)),
 # 接口文档路由
 path(r'docs/', include_docs_urls(title=API_TITLE, description=API_DESCRIPTION, authentication_classes=[], permission_classes=[]))
]

运行项目

python manage.py runserver

打开浏览器输入:

http://127.0.0.1:8000 # api主页

点击主页提供的链接http://127.0.0.1:8000/test进入下一级目录

http://127.0.0.1:8000/docs进入接口文档

使用Postman测试工具测试api数据

进入ubuntusoftware应用商店,搜索postman进行安装

在postman中输入http://127.0.0.1:8000/api/student点击send,并返回json数据。

以上这篇Django+RestFramework API接口及接口文档并返回json数据操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 1. 标题栏 NT_UI.setHeader(name, style); 列表 可选值 背景色 颜色 悬浮色 大小 间距 圆角 标题栏 wrapper true 标题栏-客服头像 kefuLogo true true true 标题栏-客服名称 kefuName true 标题栏-客服个性签名 kefuSignature true 标题栏-最小化按钮 min true true 标题栏-关闭按钮

  • 初始化 xn('init') 停止默认初始化 xn('stopAutoInit'); 设置访客信息 // customerinfo的可选健值见下表 xn('setCustomerInfo', JSONObject customerinfo); 参数名称 类型 备注 默认值 uid String 用户id 无 uname String 用户名称 无 userlevel String 用户等级

  • 基本信息 Path: /api/interface/get Method: GET 接口描述: 请求参数 Headers 参数名称 参数值 是否必须 示例 备注 Content-Type application/json 是 Query 参数名称 是否必须 示例 备注 id 是 接口id token 是 返回数据 名称 类型 是否必须 默认值 备注 其他信息 errcode number 非必须

  • 为方便 Cocos Creator 开发者调试和接入腾讯云游戏多媒体引擎产品 API,本文为通过 Cocos Service 服务面板,接入腾讯云 GME 的接口文档。 此文档对应 GME SDK 的版本为 2.5.2。 函数原型为 GME Cocos SDK 接口文档 中定义的接口,Cocos Service 接入时设置了一个全局变量 tencentGME.tencentGMEInst,可参考示

  • ethers.js 主要包含以下4个模块 : 钱包(Wallet) ,Providers ,合约 Contract 以及 工具包 utils 。 在使用接口之前,请先确保正确 引入 ethers.js , 以下是接口列表: 钱包类 Wallet 和 签名器 Signer Wallet 签名器(Signer) 接口 提供者 Provider 连接以太坊网络 属性 获取网络 获取账号信息 获取以太坊状

  • 本文档提供两种方式获取HPB随机数,对应两种接口。 一种是通过RPC接口获取历史随机数; 一种是通过智能合约使用最新随机数。 接口定义 通过RPC接口获取历史随机数 接口名称 :hpb_getRandom 参数 :块号 ,整形数字或者字符串”latest” 返回值:随机数,string, 使用“latest”查询最新块中的随机数 调用示例: curl -X POST -H "Content-Typ