Django+RestFramework API接口及接口文档并返回json数据操作
作者:xingjidemimi 发布时间:2021-05-29 21:43:57
系统: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数据。
来源:https://blog.csdn.net/xingjidemimi/article/details/86694280


猜你喜欢
- 组件的基本使用注册组件注册组件就是利用Vue.component()方法,先传入一个自定义组件的名字,然后传入这个组件的配置。 Vue.co
- 废话不多说了直接给大家贴代码了,具体代码如下所示:$('#myModal').on('shown', fun
- Tensorflow 提供了一种统一的格式来存储数据,这个格式就是TFRecord,上一篇文章中所提到的方法当数据的来源更复杂,每个样例中的
- axios * 的配置方式本文所用 axios 版本号为:1.3.2。axios 中有两种 * :axios.interceptors.r
- --创建测试数据库 CREATE DATABASE Db GO --对数据库进行备份 BACKUP DATABASE Db TO DISK=
- 带农历的JavaScript日期时间,增加了农历使这款代码更具实用性,很不错,不但有农历,而且还可以显示民国计年,可以判断显示闰月、闰年等,
- 运行环境: python 3.6.0今天处于练习的目的,就用 python 写了一个百度翻译,是如何做到的呢,其实呢就是拿到接口,通过这个接
- 本文实例讲述了python实现的自动发送消息功能。分享给大家供大家参考,具体如下:一个简单的脚本#-*- coding:utf-8 -*-f
- 今天项目中遇到了中文编码的zip文件,处理了蛮长时间,所以记录下,以免下次踩坑。Python2下Python2中读取zip文件,zipfil
- Session实现原理实现请求身份验证的方式很多,其中一种广泛接受的方式是使用服务器端产生的Session ID结合浏览器的Cookie实现
- 关于ref和$refs的用法及讲解,vue.js中文社区( https://cn.vuejs.org/v2/api/#ref )是这么讲解的
- 网上考试设计思路是怎样的?为了运行这个应用程序,我们需要在global.asa文件里进行设置数据库的连接。global.asa <&n
- 目录1. 注册百度云账号2. 安 * aidu python api3.调用摄像头4.完整测试程序1. 注册百度云账号注册百度智能云,提交申请
- 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。以下文章来源于Pyth
- 前言最近在学习python-igraph,发现其实学习一种全新的语言看官方的文档是真的很有帮助,这次我的大部分python代码的完成都是靠着
- 本文实例讲述了Python递归及尾递归优化操作。分享给大家供大家参考,具体如下:1、递归介绍递归简而言之就是自己调用自己。使用递归解决问题的
- 把 Oracle 数据库从 RAC 集群迁移到单机环境一、系统环境1、源数据库db_name:hisdb SID:hisdb1、
- 声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移。通过傅里叶变换,可以将时间域的声音函数分解
- 以前看到 andy的关于“Quiet Structure”觉的很不错,于是今天到她的个人站点上逛逛,发现不少好的文章,今天介绍的是
- 例如:JSON字符串:var str1 = '{ "name": "cxh", "