利用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 相关文章推荐
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
Python基础知识_浅谈用户交互
May 31 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
Python实现线程状态监测简单示例
Mar 28 Python
利用Pyhton中的requests包进行网页访问测试的方法
Dec 26 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
Python调用.net动态库实现过程解析
Jun 05 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 Python
Python 数据可视化之Matplotlib详解
Nov 02 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
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
php的ddos攻击解决方法
2015/01/08 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
Python如何调用JS文件中的函数
2019/08/16 Python
Python识别处理照片中的条形码
2020/11/16 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
法学专业毕业生自荐信范文
2013/12/18 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
治庸问责心得体会
2014/09/12 职场文书
写给领导的感谢信
2015/01/22 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
春晚观后感
2015/06/11 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
PHP实现两种排课方式
2021/06/26 PHP
Java基础之this关键字的使用
2021/06/30 Java/Android
Java异常处理try catch的基本用法
2021/12/06 Java/Android
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL