利用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 29 Python
基于python的Tkinter实现一个简易计算器
Dec 31 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
解决python大批量读写.doc文件的问题
May 08 Python
详解Django rest_framework实现RESTful API
May 24 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
三个python爬虫项目实例代码
Dec 28 Python
Python 如何实现数据库表结构同步
Sep 29 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 Python
深度学习tensorflow基础mnist
Apr 14 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 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_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
python中类的一些方法分析
2014/09/25 Python
Python中DJANGO简单测试实例
2015/05/11 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
Windows下安装Scrapy
2018/10/17 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
Python中bisect的使用方法
2019/12/31 Python
python__new__内置静态方法使用解析
2020/01/07 Python
python 如何区分return和yield
2020/09/22 Python
python中实现栈的三种方法
2020/12/19 Python
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
大学生毕业自荐信
2013/10/10 职场文书
临床医师专业个人自我评价
2014/01/08 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
MySQL深分页问题解决思路
2022/12/24 MySQL