利用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程序中设置HTTP代理
Nov 06 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
Python基于pandas实现json格式转换成dataframe的方法
Jun 22 Python
Python requests库用法实例详解
Aug 14 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
Nov 01 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
基于python的列表list和集合set操作
Nov 24 Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
Python requests HTTP验证登录实现流程
Nov 05 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 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合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
解析如何在PHP下载文件名中解决乱码的问题
2013/06/20 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
python中的装饰器详解
2015/04/13 Python
python技能之数据导出excel的实例代码
2017/08/11 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
python3 反射的四种基本方法解析
2019/08/26 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
博士研究生自我鉴定范文
2013/12/04 职场文书
秋游活动策划方案
2014/02/16 职场文书
个人承诺书格式
2014/06/03 职场文书
护理专业求职信
2014/06/15 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
高中运动会广播稿
2015/08/19 职场文书
中学语文教学反思
2016/02/16 职场文书
Python实现排序方法常见的四种
2021/07/15 Python