利用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中针对函数处理的特殊方法
Mar 06 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
基于pandas数据样本行列选取的方法
Apr 20 Python
Python logging模块用法示例
Aug 28 Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
python 图像的离散傅立叶变换实例
Jan 02 Python
python连接mongodb集群方法详解
Feb 13 Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 Python
使用pth文件添加Python环境变量方式
May 26 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
JavaScript 序列化对象实现代码
2009/12/18 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
实例教学如何写vue插件
2017/11/30 Javascript
js判断节假日实例代码
2017/12/27 Javascript
关于vue面试题汇总
2018/03/20 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
python函数装饰器用法实例详解
2015/06/04 Python
python爬取淘宝商品销量信息
2018/11/16 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
幼儿教师考核制度
2014/01/25 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
化妆品店促销方案
2014/02/24 职场文书
中秋节主持词
2014/04/02 职场文书
初中生期末评语大全
2014/04/24 职场文书
高中生评语大全
2014/04/25 职场文书