利用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计数排序和基数排序算法实例
Apr 25 Python
python的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
python实现指定字符串补全空格的方法
Apr 30 Python
tensorflow学习笔记之简单的神经网络训练和测试
Apr 15 Python
使用Flask集成bootstrap的方法
Jul 24 Python
对Python信号处理模块signal详解
Jan 09 Python
Python实现Linux监控的方法
May 16 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
pytorch实现seq2seq时对loss进行mask的方式
Feb 18 Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 Python
pytorch 两个GPU同时训练的解决方案
Jun 01 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
PHP4实际应用经验篇(6)
2006/10/09 PHP
深入浅出php socket编程
2015/05/13 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
5 cool javascript apps
2007/03/24 Javascript
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
Python脚本实现下载合并SAE日志
2015/02/10 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
python学习开发mock接口
2019/04/28 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
土木工程专业个人求职信
2013/12/05 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android