利用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操作SQLite简明教程
Jul 10 Python
用Python的Django框架完成视频处理任务的教程
Apr 02 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
Python查询IP地址归属完整代码
Jun 21 Python
Python实现扣除个人税后的工资计算器示例
Mar 26 Python
Python面向对象程序设计之继承与多继承用法分析
Jul 13 Python
python pygame实现方向键控制小球
May 17 Python
django 自定义filter 判断if var in list的例子
Aug 20 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
将matplotlib绘图嵌入pyqt的方法示例
Jan 08 Python
后端开发使用pycharm的技巧(推荐)
Mar 27 Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 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检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
28个JS验证函数收集
2010/03/02 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
js转义字符介绍
2013/11/05 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
联想中国官方商城:Lenovo China
2017/10/18 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
XML文档面试题
2015/08/05 面试题
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
供电工程专业求职信
2014/08/09 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
收银员岗位职责范本
2015/04/07 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
Python进程间的通信之语法学习
2022/04/11 Python
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技