利用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获取远程文件大小的函数代码分享
May 13 Python
python使用BeautifulSoup分析网页信息的方法
Apr 04 Python
Python实现将文本生成二维码的方法示例
Jul 18 Python
python使用xslt提取网页数据的方法
Feb 23 Python
Python使用while循环花式打印乘法表
Jan 28 Python
wxpython绘制圆角窗体
Nov 18 Python
Python基于requests库爬取网站信息
Mar 02 Python
Python importlib动态导入模块实现代码
Apr 16 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
python脚本定时发送邮件
Dec 22 Python
opencv 分类白天与夜景视频的方法
Jun 05 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 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删除数组中的特定元素的代码
2012/06/28 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
详解json在php中的应用
2018/09/30 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python列表生成式与生成器操作示例
2018/08/01 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
python里glob模块知识点总结
2021/01/05 Python
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
法制报告会主持词
2014/04/02 职场文书
机电系毕业生求职信
2014/07/11 职场文书
会议邀请函
2015/01/30 职场文书
教师岗位职责
2015/02/03 职场文书
小学生手册家长意见
2015/06/03 职场文书
庆七一主持词
2015/06/29 职场文书
2016年记者节感言
2015/12/08 职场文书
分享7个 Python 实战项目练习
2022/03/03 Python
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫