利用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下函数参数的传递(参数带星号的说明)
Sep 19 Python
使用PYTHON创建XML文档
Mar 01 Python
c++生成dll使用python调用dll的方法
Jan 20 Python
python使用any判断一个对象是否为空的方法
Nov 19 Python
低版本中Python除法运算小技巧
Apr 05 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
Python continue继续循环用法总结
Jun 10 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
对django layer弹窗组件的使用详解
Aug 31 Python
详解tensorflow之过拟合问题实战
Nov 01 Python
Python办公自动化之Excel(中)
May 24 Python
Python图片检索之以图搜图
May 31 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缓存类代码
2015/10/23 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
脚本收藏iframe
2006/07/21 Javascript
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
极简的Python入门指引
2015/04/01 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
python实现连续图文识别
2018/12/18 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
解释下面关于J2EE的名词
2013/11/15 面试题
计算机专业应届毕业生自荐信
2013/09/26 职场文书
结婚典礼证婚词
2014/01/08 职场文书
职工运动会邀请函
2014/01/19 职场文书
国贸专业的职业规划书
2014/03/15 职场文书
洗车工岗位职责
2014/03/15 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
施工安全责任书
2014/04/14 职场文书
颐和园导游词400字
2015/01/30 职场文书
《给予树》教学反思
2016/03/03 职场文书
Python3 如何开启自带http服务
2021/05/18 Python
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android