利用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中list循环语句用法实例
Nov 10 Python
Python中集合类型(set)学习小结
Jan 28 Python
深入讲解Python中面向对象编程的相关知识
May 25 Python
numpy数组拼接简单示例
Dec 15 Python
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
Python3几个常见问题的处理方法
Feb 26 Python
Python实现截取PDF文件中的几页代码实例
Mar 11 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
pytorch SENet实现案例
Jun 24 Python
Python pytesseract验证码识别库用法解析
Jun 29 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 Python
Python+DeOldify实现老照片上色功能
Jun 21 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+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
在vs2010中调试javascript代码方法
2011/02/11 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
2015/08/10 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
Python创建文件和追加文件内容实例
2014/10/21 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
Python爬虫教程知识点总结
2020/10/19 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
竞选劳动委员演讲稿
2014/04/28 职场文书
机关作风建设工作总结
2014/10/23 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
干部培训简讯
2015/07/20 职场文书
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技