我用的是django-rest-framework美元.它提供了一个非常棒的Django管理风格、可浏览的self 文档化API.但是任何人都可以访问这些页面并使用界面添加数据(POST).我怎么才能禁用它呢?

推荐答案

您只需要从视图支持的渲染器列表中删除可浏览的API渲染器.

Generally:

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

Per-view basis:

class MyView(...):
    renderer_classes = [renderers.JSONRenderer]

Aside:

在许多情况下,我认为人们在任何情况下都会 Select 禁用可浏览API是一件遗憾的事情,因为它对任何致力于API的开发人员都是一个很大的帮助,而且是doesn't give them more permissions that they would otherwise have.我可以看出,在some个 case 中,这样做可能有商业原因,但一般来说,我会认为这是一笔巨大的assets资源 .Although, in some cases there may be details shown (like the names of custom actions) that a non-public API may not want to expose.

有关将可浏览API渲染器限制为开发的更多详细信息,请参见the answer below.

Django相关问答推荐

我的Django终结点不访问HAS_OBJECT_PERMISSION方法

当前路径 **/POST 与其中任何一个都不匹配

从多个数据库访问 Django 会话

如何组织 Django REST Framework url

使用 Crispy Forms 时 Django 返回 'TemplateDoesNotExist'

我的 django 模板布尔变量在 javascript 中没有按预期工作

如何从 django 模板生成静态 html 文件?

Django Calendar日历小部件?

为什么 django 1.7 会为字段 Select 的变化创建迁移?

用于测试文件下载的 Django 单元测试

将网络测功机添加到 Heroku django 应用程序时如何克服Coudn't find that formation错误?

Django:如何使用动态(非模型)数据预填充 FormView?

Django 不调用模型清理方法

Django - 配置不当:模块django.contrib.auth.middleware

如何在不同的元素上添加注释?

如何重置 PostgreSQL 表上的 ID 序列

如何在 Python 中运行另一个脚本而不等待它完成?

Heroku & Django:OSError: No such file or directory:'/app/{myappname}/static'

django.core.servers.basehttp.FileWrapper 在 Django 1.9 中消失

Python Django 的多线程