分类目录归档:Django

Django rest框架:教程7:模式和客户端库


模式是一个机器可读的文档,描述了可用的API端点,它们的URL以及它们支持的操作。

模式可以是自动生成文档的有用工具,也可以用于驱动可以与API交互的动态客户端库。

核心API

为了提供架构支持,REST框架使用Core API

核心API是用于描述API的文档规范。它用于提供可用端点的内部表示格式以及API公开的可能交互。它既可以用于服务器端,也可以用于客户端。

在服务器端使用时,Core API允许API支持呈现各种模式或超媒体格式。

在客户端使用时,Core API允许动态驱动的客户端库可以与任何公开支持的模式或超媒体格式的API进行交互。

添加架构

REST框架支持显式定义的模...

阅读全文...

Django rest框架:教程5:关系和超链接API


目前我们的API中的关系通过使用主键来表示。在本教程的这一部分中,我们将通过使用超链接建立关系来提高API的内聚性和可发现性。

为我们的API的根创建端点

现在我们有“片段”和“用户”的端点,但我们的API没有单一的入口点。要创建一个,我们将使用基于函数的常规视图和@api_view我们之前介绍的装饰器。在你的snippets/views.py添加中:

from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.reverse...

阅读全文...

Django rest框架:教程6:ViewSets和路由器


REST框架包括一个用于处理的抽象ViewSets,允许开发人员专注于建模API的状态和交互,并使URL构造基于通用约定自动处理。

ViewSet类与类几乎是相同的View,除了它们提供诸如read或之类的操作update,而不是诸如get或之类的方法处理程序put

一个ViewSet类仅在最后一刻被绑定到一组方法处理程序,当它被实例化为一组视图时,通常使用一个Router类来处理为您定义URL conf的复杂性。

重构以使用ViewSet

让我们采用当前的一组视图,并将它们重构为视图集。

首先,让我们来重构我们UserListUserDetail意见纳入一个单一的UserViewS...

阅读全文...

Django rest 框架:教程4:身份验证和权限


目前,我们的API对谁可以编辑或删除代码段没有任何限制。我们希望有一些更高级的行为,以确保:

  • 代码段始终与创建者相关联。
  • 只有经过身份验证的用户才能创建摘要。
  • 只有代码段的创建者可以更新或删除它。
  • 未经身份验证的请求应具有完全只读访问权限。

向我们的模型添加信息

我们将对我们的Snippet模型类进行一些更改。首先,让我们添加几个字段。其中一个字段将用于表示创建代码段的用户。另一个字段将用于存储代码的突出显示的HTML表示。

将以下两个字段添加到Snippet模型中models.py

owner = models.ForeignKey('auth.User', related_na...

阅读全文...

Django rest框架:教程2:请求和响应


从这一点开始,我们将真正开始涵盖REST框架的核心。让我们介绍几个基本构建块。

请求对象

REST框架引入了一个Request扩展常规的对象HttpRequest,并提供更灵活的请求解析。Request对象的核心功能是request.data属性,它类似于request.POST,但对于使用Web API更有用。

request.POST  # Only handles form data.  Only works for 'POST' method.
request.data  # Handles arbitrary data.  Works for 'POST', 'PUT' and...

阅读全文...

Django rest框架:教程3:基于类的视图


我们还可以使用基于类的视图而不是基于函数的视图来编写API视图。我们将看到这是一个强大的模式,允许我们重用常用功能,并帮助我们保持代码。

使用基于类的视图重写我们的API

我们首先将根视图重写为基于类的视图。所有这些涉及到一点点的重构views.py

from snippets.models import Snippet
from snippets.serializers import SnippetSerializer
from django.http import Http404
from rest_framework.views import APIView
from rest_...

阅读全文...

Django rest框架:快速开始


我们将创建一个简单的API,以允许管理员用户查看和编辑系统中的用户和组。

项目设置

创建一个名为的新Django项目tutorial,然后启动一个名为的新应用程序quickstart

# Create the project directory
mkdir tutorial
cd tutorial

# Create a virtualenv to isolate our package dependencies locally
virtualenv env
source env/bin/activate  # On Windows use `env\Scripts\activate`...

阅读全文...

django项目实战-django消息系统


在django开发中我们经常使用到消息系统,例如:当你注册用户时,需要对用户信息作出验证,这样我们可以使用消息来提示用户,信息是否正确。

要完成一个django消息系统需要如下步骤:

  • 创建项目
  • 创建应用
  • 配置消息
  • 做数据迁移
  • 设置消息
  • 显示消息

创建项目

django-admin startproject django-message

创建应用

django-admin startapp myapp

配置消息

当我们使用django-admin startproject django-message,创建项目时,django已经为我们配置好了,有这几个地方:

INSTALLED_AP...

阅读全文...

Django-rest 框架:教程1:序列化


介绍

本教程将介绍如何创建一个突出显示Web API的简单pastebin代码。在此过程中,它将介绍构成REST框架的各种组件,并让您全面了解所有内容如何组合在一起。

这个教程相当深入,所以你应该在开始之前获得一个cookie和一杯你最喜欢的啤酒。如果您只想快速浏览一下,请转到快速入门文档。


建立一个新的环境

在我们做任何其他事情之前,我们将使用virtualenv创建一个新的虚拟环境。这将确保我们的包配置与我们正在处理的任何其他项目保持良好隔离。

virtualenv env
source env/bin/activate

现在我们已经进入了virtualenv环境,我们可以安装我们...

阅读全文...

django 项目实战-基础项目


django 项目实战-基础项目

我们首先来创建一个django基础项目,来熟悉django项目的开发流程,内容如下:

  • 创建django项目
  • 创建django应用
  • 创建模型
  • 创建视图
  • 配置url
  • 创建超级用户

创建django项目

创建django项目比较简单,在命令行使用如下命令:

django-admin startproject mysite

项目结构如下:

django项目结构

这些文件的含义:

  • 外部mysite/根目录只是项目的容器。它的名字对Django来说无关紧要; 你可以将它重命名为你喜欢的任何东西。
  • manage.py:一个命令行实用程序,允许您以各种方式与此Django项目进行交互...

阅读全文...