restful,目标这是最流行的接口规范,想要了解的可以去阮老师的博客看一下 越来越多的大型应用开始使用restful规范,restful强调一种无状态,资源的方式 在django中很著名的一个框架是django-rest-framework ,帮我们减少了很多工作量,尤其在序列化与反序列化成我们需要的格式帮了我们省了很多事 在这里就记录一下个人的学习过程 django-rest-framework 实现一组api的基本流程 在models.py
在Django中,从URL调度器中过来的HTTPRequest会传递给disatch(),使用REST后也一样
:fa-user: :fa-heart: :fa-user: 同认证一样,dispatch()作为入口,从self.initial(request, *args, **kwargs)进入initial()
# -*- coding: utf-8 -*- __author__ = 'YongCong Wu' # @Time : 2018/10/23 15:05 # @Email : : 1922878025@qq.com from rest_framework import exceptions from app import models class FirstAuthtication(object): def authenticate(self, request):
django-rest-framework 是基于 django 的拓展,专为 RESTful API 的开发而设计,提供了十分丰富的辅助类和函数,帮助我们方便地开发 API。 django-rest-framework 同样针对 RESTful API 开发中常见的处理逻辑,提供了各种通用视图函数。 路由自动生成器(Router)。 django-rest-framework 根据编写的视图函数,自动生成符合 RESTful 设计的 URL 路由。 文档(Documentation)。 django-rest-framework 基于 OpenAPI 模式自动生成 API 文档,无需我们手动编写和维护。 让我们正式开启 django-rest-framework 的学习之旅吧!
Django-Rest-Framework Django-Rest框架是构建Web API强大而灵活的工具包。 简单粗暴,直奔主题。
技术方面前端选择了 Vue,后端基于 django 的话毫无疑问肯定是使用 django-rest-framework。 Django中文社区的项目已经进入正式的开发阶段了,django-rest-framework 框架之前从未接触过,相当于是从零开始学。 下面就是教程的地址: django-rest-framework 官方入门教程 当然也有好心人翻译成了中文版放到 GitBook 上,喜欢阅读中文版的可以参考这个:django-rest-framework 而随着使用越来越深入,对 django-rest-framework 理解也会越来越透彻,慢慢地就会不自觉开始探索它的源码实现,那时候相信你已经成为 django-rest-framework 框架的专家了 ,甚至可以在 GitHub 上为 django-rest-framework 项目贡献你的代码。
技术方面前端选择了 Vue,后端基于 django 的话毫无疑问肯定是使用 django-rest-framework。 Django中文社区的项目已经进入正式的开发阶段了,django-rest-framework 框架之前从未接触过,相当于是从零开始学。 下面就是教程的地址: django-rest-framework 官方入门教程 当然也有好心人翻译成了中文版放到 GitBook 上,喜欢阅读中文版的可以参考这个:django-rest-framework 而随着使用越来越深入,对 django-rest-framework 理解也会越来越透彻,慢慢地就会不自觉开始探索它的源码实现,那时候相信你已经成为 django-rest-framework 框架的专家了 ,甚至可以在 GitHub 上为 django-rest-framework 项目贡献你的代码。
使用django-rest-framework开发api并使用json web token进行身份验证 在这里使用django-rest-framework-jwt这个库来帮助我们简单的使用jwt进行身份验证 并解决一些前后端分离而产生的跨域问题 流程 安装 安装django-rest-framework 现在接口一般都是restful风格,所以我们直接使用这个框架 在终端输入以下命令安装 pip install djangorestframework-jwt 在你的settings.py,添加JSONWebTokenAuthentication到Django REST框架DEFAULT_AUTHENTICATION_CLASSES # django-rest-framework
开发的异同时说过,django-rest-framework 开发和传统的开发方式没有什么不同,区别仅在于返回的数据格式不同而已。 之前说过,django-rest-framework 为 API 的开发提供了丰富的功能,包括内容协商、认证和鉴权、限流等等。 先来看一个简单的例子(摘自 django-rest-framework 官网示例),理解序列化器的工作原理和功能。 实际上,django-rest-framework 序列化器的设计参考了 django 表单的设计。序列化器和表单也有很多相似功能,比如对输入数据进行校验等。 接下来,让我们使用 django-rest-framework 提供的通用类视图,将首页 API 的视图函数改为类视图。
为此,django-rest-framework 分别提供了对应通用类视图函数。 因此,django-rest-framework 引入了视图集(Viewsets),把对同一个资源的不同操作,集中到一个类中。 同样的,针对 Web 开发中的常见逻辑,django-rest-framework 也提供了通用视图集,进一步简化开发工作。 django-rest-framework 提供了资源操作的 5 个混入类,分别对应资源的创建、查询、更新、删除。 django-rest-framework 的默认生成规则是 basename-action。
接下来,我们将使用 django-rest-framework,一步步为博客系统开发 RESTful API,并在这个过程中深入学习 django-rest-framework 的使用方法,为后续使用 既然要使用 django-rest-framework,第一件事当然是先安装它。 将 django-rest-framework 添加到 INSTALLED_APPS 里: blogproject/settings/common.py INSTALLED_APPS = [ 'rest_framework', ] django-rest-framework 还为我们提供了一个与 API 进行交互的后台,有时候 API 可能需要登录认证,因此将 django-rest-framework 至此,django-rest-framework 的安装和基本设置已经完成,接下来就来开始开发博客 API 了。
一是 action 装饰器,它用来装饰一个视图集中的方法,被装饰的方法会被 django-rest-framework 的路由自动注册为一个 API 接口。 视图集中所有以上提及的以标准动作命名的方法,都会被 django-rest-framework 的路由自动注册为标准的 API 接口。 django-rest-framework 默认只能识别标准命名的视图集方法并将其注册为 API,但我们可以添加更多非标准的 action,而为了让 django-rest-framework 能够识别这些方法 对于这样的场景,我们可以在请求 API 时加上查询参数,django-rest-framework 解析查询参数,然后从全部文章列表中过滤出查询所指定的文章列表再返回。 django-rest-framework 中非常方便地使用 django-filter。
django 本身没有提供这样的处理框架,但 django 的第三方拓展——django-rest-framework 就是一套专门用来开发符合 REST 规范的 RESTful 接口的框架。 可以说在现在这个前后端分离的大环境下,django 开发基本离不开 django-rest-framework。 因此接下来的教程里,我们将全面学习 django-rest-framework 的使用。 如果你没有看上一部教程也没有关系,在 django-rest-framework 教程正式开始之前会指导大家如何一步步将博客运行起来。 django-rest-framework 教程虽然延续 Django 博客教程(第二版)中的项目,但在内容上并无太大关联,如果你已经有了 django 基础(了解 ORM 以及类视图就行),就可以直接开始本教程
Step2:使用 django-rest-framework 为 Step1 中的博客开发一套 Restful API 现在流行前后端分离的开发方式,在这套教程中,我们将学习如何使用 django-rest-framework Step4:使用 Webpack、Vue 和 django-rest-framework 开发现代化博客 在这套教程中我们将学习前端工程化的知识,学习如何使用 Webpack 搭建 Vue 的开发环境, Step6:综合此前学到的全部技术,使用 django-rest-framework 和 Vue 开发更加现代化的论坛 学到这里,你已经小有所成,对 django、django-rest-framework
django-rest-framework 可以根据模型中的字段的定义自动推断该使用何种类型的序列化字段,但对于这里提到的 toc、body_html 属性,django-rest-framework 不过解决方法很简单,既然 django-rest-framework 无法自动推断,那我们就人工指定该使用何种类型的序列化字段就行了。
%}">{{ post.category.name }} 第11章 - 11.1.1 - 237 页,感谢 @eat 的指正 djangorestframewrok 包错写为 django-rest-framework ,错误内容: pip install django-rest-framework==3.8.2 修订为: pip install djangorestframework==3.8.2 第 14 第14章 - 14.3.6 - 312 页 djangorestframewrok 包错写为 django-rest-framework,错误内容: django-rest-framework==
1.安装djangorestframework 1.安装djangorestframework及其依赖包markdown、django-filter。 pip install djangorestframework markdown django-filter 2.在settings中注册,如下: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes
django-haystack 默认返回的搜索结果是一个类似于 django QuerySet 的对象,需要配合模板系统使用,因为未被序列化,所以无法直接用于 django-rest-framework 但是,通过之前的功能我们看到,使用 django-rest-framework 是一个近乎标准化但又枯燥无聊的过程:首先是编写序列化器用于序列化资源,然后是编写视图集,提供对资源各类操作的接口。 此时就要发挥开源社区的力量,去 GitHub 使用关键词 rest haystack 搜索,果然搜到一个 drf-haystack 开源项目,专门用于解决 django-rest-framework 和 所以接下来就进入到 django-rest-framework 标准开发流程:定义序列化器 -> 编写视图 -> 配置路由,这样一个标准的搜索接口就开发出来了。 但是,django-rest-framework 并没有提供这些比较个性化需求的序列化字段,因此接下来我们接触 drf 的一点高级用法——自定义序列化字段。
作者:HelloGitHub-追梦人物[1] 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库[2] django-rest-framework 类视图拓展自 django 的类视图 django-rest-framework 中最基本的类视图是 views.APIView,这个类可以看成是上一篇教程中用到的 api_view 装饰器的类版本。 django-rest-framework 针对各种类型的资源操作,提供了对应的通用类视图,这些通用类视图主要包括: CreateAPIView 用于创建资源的 POST 请求。