添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在使用rest framework开发过程中,客户端向服务器发送请求,服务器处理后,将结果返回给客户端。遇到一个奇怪的问题,客户端收到的返回结果,在命令行下查看,全是一大串的html标签(实际上是rest framework api的页面)。而实际上,我们期望返回的是我们填写的提示信息,例如,”时间格式错误”,“参数太长”,“成功”等等。

这个肿么解决呢?

解决办法:

  1. 查看DEBUG

    首先怀疑的是settings中的DEBUG问题,经过测试,证明与其无关。

  2. APIException
    服务器经常使用raise APIException来向客户端返回处理结果。APIException作为返回结果的方式,会不会是这里的问题导致客户端收到是html标签呢?
    接着,查看关于exception 的定义
    exception in Django rest framework views exception
    http://www.django-rest-framework.org/api-guide/exceptions/

    也没有获取到有用的信息。

  3. rest framework render
    最后想到是rest framework render的问题。render完成结果的渲染,是用html格式还是json格式。

    rest framework 的配置是通过django settings文件中的REST_FRAMEWORK来定义的。例如,工程的settings文件中可能有类似如下的定义:

    REST_FRAMEWORK = {
        'DEFAULT_RENDERER_CLASSES': (
            'rest_framework.renderers.JSONRenderer',
        'DEFAULT_PARSER_CLASSES': (
            'rest_framework.parsers.JSONParser',
    }

    如果render定义如下:

    REST_FRAMEWORK = {
       'DEFAULT_RENDERER_CLASSES': (
           'rest_framework.renderers.BrowsableAPIRenderer',
           'rest_framework.renderers.JSONRenderer',
    }

    则返回的是html 。
    render应该定义成这样,并且注意顺序:

    REST_FRAMEWORK = {
        'DEFAULT_RENDERER_CLASSES': (
            'rest_framework.renderers.JSONRenderer',
            'rest_framework.renderers.JSONPRenderer',
            'rest_framework.renderers.BrowsableAPIRenderer',
            'rest_framework.renderers.XMLRenderer',
    }

    关于rest framework settings,更多信息可参考
    http://www.django-rest-framework.org/api-guide/settings/

问题:在使用rest framework开发过程中,经常使用raise APIException来返回处理结果。 但是发现,命令行下查看,每次返回的总是一大串的html标签(实际上是rest framework api的页面)。 而我们期望返回的是我们填写的提示信息,例如,”时间格式错误”,“参数太长”,“成功”等等。解决办法:查看DEBUG首先怀疑的是settings中的DEBUG问题,经过 REST 是一种架构样式,用于通过HTTP设计网络应用程序和 API 。 它代表RE表象小号大老贸易交接。 符合 REST 体系结构样式的Web服务或 REST ful Web服务可在Internet上的计算机系统之间提供互操作性。 REST 约束 作为 REST 的创造者,Roy Fielding在他的描述了它,它被认为是一整套需求,由要实现该系统的环境的约束所决定。 这样的约束是: 客户端 -服务器架构 统一接口(资源 ,) 按需代码(可选) 带有元数据的索引视图 列出所有帖子 /帖子/ <id> / 按ID显示个人帖子
一、什么是 REST 面向资源是 REST 最明显的特征,资源是一种看待服务器的方式,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统中的一个文件、数据库中的一张表等等具体的东西,可以将资源设计的要多抽象有多抽象,只要想象力允许而且 客户端 应用开发者能够理解。 与面向对象设计类似,资源是以名词为核心来组织的,首先关注的是名词。一个资源可以由一个或多个URI来标识。URI既是资源的名称,也是资源在Web上的地址。对某个资源感兴趣的 客户端 应用,可以通过资源的URI与其进行交互。对于同一个资源的一组不同的操作。资源是服务器
本门课程重实战,将基础知识拆解到项目里,让你在项目情境里学知识。 这样的学习方式能让你保持兴趣、充满动力, 刻知道学的东西能用在哪、能怎么用。 平 不明白的知识点,放在项目里去理解就恍然大悟了。   一、融汇贯通 本视频采用了前后端分离的开发模式,前端 使用 Vue.js+Element UI实现了Web页面的呈现,后端 使用 Python 的 Django 框架实现了数据访问的接口,前端通过Axios访问后端接口获得数据。在学习完本章节后,真正理解前后端的各自承担的工作。   二、贴近实战 本系列课程为练手项目实战:学生管理系统v4.0的开发,项目包含了如下几个内容:项目的总体介绍、基本功能的演示、Vuejs的初始化、Element UI的 使用 、在 Django 中实现针对数据的增删改查的接口、在Vuejs中实现前端增删改查的调用、实现文件的上传、实现表格的分页、实现导出数据到Excel、实现通过Excel导入数据、实现针对表格的批量化操作等等,所有的功能都通过演示完成、贴近了实战   三、课程亮点 在本案例中,最大的亮点在于前后端做了分离,真正理解前后端的各自承担的工作。前端如何和后端交互   适合人群: 1、有Python语言基础、web前端基础,想要深入学习Python Web框架的朋友; 2、有 Django 基础,但是想学习企业级项目实战的朋友; 3、有MySQL数据库基础的朋友
<OriginalInfo> <Key>test.jpeg</Key> <Location>qr-code-1305143506.cos.ap-shanghai.myqcloud.com/test.jpeg</Location> <ETag>&quot;930b8ceb82c9e7ed3dc61bdc0f8577065f7484a7&quot;<.
一. 异常在 使用 Django Rest Framework 候,如果发生异常的话,往往如下面所示:{"detail": "Not allowed."}但是后台往往想要的是常见的模式:{ "desc":"Not allowed.", "code":400, "data":null }官网文档 还是很清楚的,我们需要自定义 异常处理,然后配置就可以了,比如:1. 实现f
有关该项目的完整文档,请参见 。 直接从官方 Django REST Framework 实现中提取的XML支持作为第三方包。 它仅需要软件包是因为它可以防止发现的某些安全问题。 注意:提供的XML输出是临 格式,未正式描述。 如果您有特定的XML要求,则需要编写自己的XML解析器/渲染器以完全控制表示形式。 Python 3.5+ Django 2.2以上 Django REST 框架3.11+ 使用 pip安装... $ pip install django rest framework -xml pip install django ==2.1.5 pip install django rest framework # rest api pip install core api pygments markdown # 自动化接口文档 API 示例 #settings.conf REST _ FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'common.utils.custom_pagination.LargeResultsSetPagination', 'PAGE_SIZE': 20, #...
Django REST framework 是一个用于构建 Web API 的强大框架。它建立在 Django 框架之上,提供了许多用于创建和管理 REST ful 风格 API 的工具。 1. 安装 Django REST framework : 使用 pip 安装 django rest framework 库。 2. 在settings.py文件中添加 rest _ framework 到INSTALLED_APPS: INSTALLED_APPS = [ ' rest _ framework ', 3. 创建序列化器(Serializers):序列化器将模型转换为JSON,XML或其他格式。 4. 创建视图(Views):视图是处理请求和响应的类或函数。 5. 创建URL模式(URL Patterns): 使用 路由器将URL映射到视图。 6. 测试 API : 使用 测试 客户端 测试 API 。 以上是 Django REST framework 的基本 使用 方法。如果需要更详细的教程,可以在官网上查看:https://www. django - rest - framework .org/tutorial/1-serialization/