利用rest framework搭建Django API过程解析


Posted in Python onAugust 31, 2019

思路步骤:

创建一个可以序列化的类

去数据库取数据交给序列化的类处理

把序列化的数据返回前端

操作流程:

# 安装模块

pip install djangorestframework

# settings.py配置

1. apps中注册

INSTALLED_APPS = [
  '...',
  'rest_framework',
]

2.末尾添加以下代码,访问权限

REST_FRAMEWORK = {
  # Use Django's standard `django.contrib.auth` permissions,
  # or allow read-only access for unauthenticated users.
  'DEFAULT_PERMISSION_CLASSES': [
    'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
  ]
}

# app目录下创建rest_serializer.py文件,用来写处理序列化的类

# models.py中有个User类,类下有'username', 'password'字段
from crm import models
from rest_framework import serializers
 
class UserSerializer(serializers.HyperlinkedModelSerializer):
  # 序列化哪个类以及其类下的字段
  class Meta:
    model = models.User # 序列化models中User类
    fields = ( 'username', 'password',) # 序列化字段,此处无外键,有外键的话需要另写对应的序列化类

# app目录下创建rest_views.py文件,从数据库获取数据并交给序列化类处理

from rest_framework import viewsets
from crm.rest_serializer import UserSerializer
from crm import models
class UserViewSet(viewsets.ModelViewSet):
  queryset = models.User.objects.all() # 取User表所有数据,变量名queryset固定
  serializer_class = UserSerializer  # 给UserSerializer类序列化,变量名serializer_class固定

# app目录urls.py文件,引入url,此处为二级分发,记得总url需要分发,url(r'^crm/', include('crm.urls')),

from django.conf.urls import url,include
from rest_framework import routers
from crm.rest_views import UserViewSet
router = routers.DefaultRouter()    # 实例
router.register(r'users', UserViewSet) # 注册
urlpatterns = [
  url(r'^api/', include(router.urls)),
]

运行即可!

利用rest framework搭建Django API过程解析

利用rest framework搭建Django API过程解析

更多资料请戳:https://www.django-rest-framework.org/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python抓取豆瓣图片并自动保存示例学习
Jan 10 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
python select.select模块通信全过程解析
Sep 20 Python
Python中pillow知识点学习
Apr 30 Python
解决Tensorflow使用pip安装后没有model目录的问题
Jun 13 Python
用pycharm开发django项目示例代码
Oct 24 Python
wxpython绘制音频效果
Nov 18 Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 Python
用python制作个视频下载器
Feb 01 Python
详解Python flask的前后端交互
Mar 31 Python
Python何绘制带有背景色块的折线图
Apr 23 Python
Python进度条的制作代码实例
Aug 31 #Python
python类的实例化问题解决
Aug 31 #Python
python检测服务器端口代码实例
Aug 31 #Python
python实现多线程端口扫描
Aug 31 #Python
python实现复制大量文件功能
Aug 31 #Python
django 做 migrate 时 表已存在的处理方法
Aug 31 #Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 #Python
You might like
PHP生成带有雪花背景的验证码
2008/09/28 PHP
使用php来实现网络服务
2009/09/15 PHP
php实现telnet功能示例
2014/04/08 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
微信小程序  action-sheet详解及实例代码
2016/11/09 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
javascript 中null和undefined区分和比较
2017/04/19 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
python 读取DICOM头文件的实例
2018/05/07 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
Django model update的多种用法介绍
2020/03/28 Python
python 多进程队列数据处理详解
2019/12/23 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
拉丁舞学习者的自我评价
2013/10/27 职场文书
职工运动会邀请函
2014/02/02 职场文书
《手指教学》反思
2014/02/14 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
入党后的感想
2015/08/10 职场文书
Python爬取某拍短视频
2021/06/11 Python
利用Pycharm连接服务器的全过程记录
2021/07/01 Python