利用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的Django框架使用的一些实用建议
Apr 03 Python
简洁的十分钟Python入门教程
Apr 03 Python
python实现指定字符串补全空格的方法
Apr 30 Python
Python脚本文件打包成可执行文件的方法
Jun 02 Python
python删除特定文件的方法
Jul 30 Python
使用Python3编写抓取网页和只抓网页图片的脚本
Aug 20 Python
python 简单的多线程链接实现代码
Aug 28 Python
python中利用Future对象异步返回结果示例代码
Sep 07 Python
python迭代器常见用法实例分析
Nov 22 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 Python
python 逐步回归算法
Apr 06 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中isset()和unset()函数的用法小结
2014/03/11 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
php上传图片类及用法示例
2016/05/11 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
JQuery 入门实例1
2009/06/25 Javascript
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
python使用udp实现聊天器功能
2018/12/10 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
C语言50道问题
2014/10/23 面试题
生物化学研究助理员求职信
2013/10/09 职场文书
优秀护士先进事迹
2014/05/08 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
毕业生学校组织意见
2015/06/04 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang