Django Rest 框架中的 Post 请求处理

2024-01-08

我正在使用 Django Rest Framework,当前使用 Get 请求从后端提取一些数据,但由于 URL 限制变高,我们计划实现 Post 请求。为此,首先必须使后端 Django Rest API 能够服务于 post 请求。

我是 Django 新手,我在代码中没有找到 post 或 get 方法,我只能说我们正在使用视图集,我尝试使用“@detail_route(methods=['post'])”,但这没有'不工作,我在这里做错了什么?

class XViewSet(viewsets.ViewSet):
    renderer_classes = ''

    def retrieve(self, request, pk=None):
        try:
            pk = int(pk)
        except ValueError:
            raise InvalidParameterError(parameter_name='id', invalid_value=pk)

        queryset = models.X.objects.all()
        x = get_object_or_404(queryset, pk=pk)

        pipelines = request.query_params.getlist('pipeline[]')

        callsets =

        callset_ids =

        serializer = serializers.XSerializer(x, context={'request': request})

        requested_samples = [z[1:] for z in request.query_params.getlist('s')]

        filtered_calls = []
        serialized_data = serializer.data

        unfiltered_calls = serialized_data.get('calls')
        if unfiltered_calls:
            for serialized_calls in unfiltered_calls:
                if serialized_calls['callset'] in callset_ids:
                    unfiltered_calls = serialized_calls['data']

                    for call in unfiltered_calls:
                        if call['y'] in requested_y:
                            filtered_calls.append(call)

                    break

        serialized_data['calls'] = filtered_calls

        return Response(serialized_data, status=status.HTTP_200_OK)

    def list(self, request):

        qp = self.request.query_params

        validated_qp =

        # generate the query
        query_object =
        query =

        # execute the query
        cursor = connections['default'].cursor()
        cursor.execute(query)

        qs = utils.dictfetchall(cursor)

        # sanitize query results
        if 't' in validated_qp:
            return_data =
        else:
            for x in qs:
                if 'calls' in x:

                    x['calls'] =
                else:
                    x['calls'] = {}

            return_data =

        resp = Response(return_data, status=status.HTTP_200_OK)

        if validated_qp.get(''):
            resp['content-disposition'] =

        return resp

您可以使用基于阶级的观点 http://www.django-rest-framework.org/tutorial/3-class-based-views/来处理要求,

from rest_framework.views import APIView


class MyAPI(APIView):
    def get(selfself, request):
        # do stuff with get
        return Response(data="return msg or data")

    def post(self, request):
        post_data = request.data
        # do something with `post_data`
        return Response(data="return msg or data")



更新:使用视图集
ViewSet类为我们提供create()创建新模型实例的方法。因此我们可以覆盖它来处理传入视图的发布数据。只需添加一个create()在你的视图类下如下

class XViewSet(viewsets.ViewSet):
    renderer_classes = ''

    def create(self, request): # Here is the new update comes <<<<
        post_data = request.data
        # do something with post data
        return Response(data="return data")

    def retrieve(self, request, pk=None):
        # your code

        return Response(serialized_data, status=status.HTTP_200_OK)

    def list(self, request):
        # your code
        return resp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django Rest 框架中的 Post 请求处理 的相关文章

  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 如何在 success_url 中传递上下文数据?

    我制作了一个表单 我希望再次返回相同的表单 这次使用可在我的模板中使用的上下文数据来显示表单已成功发送 我怎样才能做到这一点 class ContactUsView FormView form class ContactUsForm tem
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • Django admin - 更改权限列表

    是否可以更改用户编辑页面中的权限列表 我不想显示所有权限 例如管理日志条目或身份验证组等 如何修改主查询集以排除其中的某些查询集 我的想法来自这个话题 https groups google com forum topic django u
  • Nginx 与 Daphne 给出 502 Bad Gateway

    由于 Django Channels 和 uwsgi 出现问题 我决定用 daphne 替换 uwsgi 关注后this http masnun rocks 2016 11 02 deploying django channels usin
  • 使用 Django 从标准输出返回 pdf 响应

    我正在使用 wkhtmltopdf 创建 PDF 文件 但是我不知道如何正确返回它们 所以我必须将它们写入我的媒体文件夹 然后重定向到刚刚创建的文件 编辑 Ian 的建议是写入 STDOUT 因此我更改了 wkhtmltopdf 命令来执行
  • 海量记录的bulk_create最佳实践

    I use bulk create将 1 mio 记录插入到新表中 需要 80 秒 Django 只使用一个 CPU 核心 大约 25 CPU 但没有一个核心达到 100 我相信有改进的潜力 这是代码 class Stock models
  • 在 django 管理表单中的选择性文本区域上使用 ckEditor

    我想在 django 管理表单中的特定文本区域应用 ckeditor 而不是在所有文本区域 下面的代码片段将在 django 表单上的每个文本区域上应用 ckeditor class ProjectAdmin admin ModelAdmi
  • Django管理命令是在单独的进程中执行的吗?

    Django 有很多管理命令 此外 我们还可以编写自己的命令 进行 shell 调用后会发生什么python manage py XXX 代码是否会在从 shell 启动的进程中执行 或者 shell 进程只是与执行命令的主 Django
  • Django 检索 GET 列表

    我是 Django 新手 我有一个 URL 列表 例如 example com item test item for test url 我知道如何在视图中检索该值 a request GET getlist item 我的问题是 如何在模板
  • 如何暂停或恢复 celery 任务?

    我的项目中有一项要求 客户可以暂停或恢复正在挂起的流程 而不是流程流程 我在用网络套接字显示芹菜任务结果 但在暂停 恢复时我不明白如何设计代码 我想到的唯一方法就是revoke暂停请求中的任务 同时保留数据撤销的过程在缓存中 并稍后在res
  • 升级到 1.8.1 后 Django 管理中断

    我从 1 7 3 升级到 1 8 1 但我的管理员无法工作 并且站点无法加载 因为它在解析路径时失败 例外 Enable django contrib auth context processors auth in your TEMPLAT
  • 无法通过 Android 应用程序访问我的笔记本电脑的本地主机

    因此 我在发布此内容之前做了一项研究 我发现的解决方案不起作用 更准确地说 连接到我的笔记本电脑的 IPv4192 168 XXX XXX 没用 连接到10 0 2 2 加上端口 不起作用 我需要测试使用 Django Rest 框架构建的
  • 在 django 中导入设置时出现奇怪的错误

    我有很多项目在 ubuntu 中使用 python2 7 和 virtualenv virtualenvwrapper 工作 在我的工作中 一些开发人员使用 macosx 和 windows 通常我像往常一样创建项目 django admi
  • 非常大的字段会对 MySQL 数据库产生负面影响吗?

    我目前正在使用 Django 构建一个网站 并希望托管用户生物样式页面 该页面可能长达几 KB 这些字段不一定需要搜索 但在查找用户名时确实需要提供 将这些数据存储在数据库中会产生负面影响吗 如果我使用带有数据库链接的静态文本文件 我的服务
  • django-rest-framework - POST 请求返回“不允许使用方法\”GET\”。”

    我已经按照安装教程设置了 django rest auth 但我无法使用登录 API 端点 当我发送包含正确信息的 POST 请求时 我收到 405 状态错误 响应为 不允许方法 GET 但是 当我导航到实际 URL 并从在线表单发布它时
  • 想要定制django Rest框架Browsable API页面

    问题 我想自定义 django Rest Framework Browsable API 页面 使其具有与我的 Web 应用程序的其余部分相同的外观和感觉 安装的软件 Python 3 6 Django 1 10 6 Django 休息框架

随机推荐

  • android System.loadLibrary 加载文件的位置

    网上的一些文章告诉我System loadLibrary 将加载文件 data data app package 目录 我想知道这是否因每个供应商的实施而异或固定 最终由供应商来定义文件系统 文件系统布局 所以它可能在不同的地方 如果没有自
  • Html-loader + file-loader 未捆绑正确的图像源

    我计划在一个项目中使用 Webpack 并使用 Html loader file loader 设置我的工作流程 以获取带有图像动态 src 的生产 html 文件 正如 Colt Steele 所教的那样 这是我的 src 文件 索引 h
  • 如果程序的一部分表现出未定义的行为,它会影响程序的其余部分吗?

    假设程序员忘记初始化他的一个自动变量 并且他使用了它的值 从而调用了未定义的行为 int i 0 j printf value of j d n j char buf 256 fputs Enter query stdout fgets b
  • nvlink、可重定位设备代码和静态设备库

    在调查可重定位设备代码的一些问题时 我偶然发现了一些我不太理解的东西 这是如图所示的用例slide 6 http on demand gputechconf com gtc express 2012 presentations gpu ob
  • 无法使用 rarfile 模块提取 RAR 存档

    我一直在尝试制作一个提取 rar 文件的脚本 但收到错误 我一直在努力理解该模块的文档 但无济于事 我是编程新手 所以有时会迷失在所有文档中 这是我的代码的相关部分以及收到的错误 我的代码片段 import rarfile rarpath
  • 我可以在 Flutter 中使用自定义环境变量吗?

    我想以与我的同事不同的方式配置我们的日志库 并且我不想冒险检查我的本地配置 即 void main LOG minLevel Logger VERBOSE LOG showSymbols false runApp RestartWidget
  • 如何检测文本中的源代码?

    是否可以检测文本中的编程语言源代码 主要是 Java 和 C 例如我想知道本文中是否有源代码部分 text text text text text text text text text text text text text text t
  • 理解Java中的继承和抽象类

    好吧 我通过谷歌搜索寻找文档 但是我没有找到任何真正描述我想要回答的内容 所以我在这里问你们 所以我得到了继承 以及它是如何工作的 我遇到的问题是有时我看到一个对象最初定义为一种类型 然后设置为不同的类型 但我不明白到底发生了什么 这是一个
  • python 找到两个numpy数组的交点

    我有两个描述空间曲线的 numpy 数组 它们在一个点上相交 我想在两个数组中找到该交点的最近值 我有这段代码可以正常工作 但对于大量点来说它会变慢 from scipy import spatial def nearest arr0 ar
  • 在模板文字中使用条件语句

    我知道有更优雅的方法来定义包含变量的字符串 但如果我想在 ES6 之前添加一个条件 我会这样做 var a text conditional a b more text 现在使用模板文字我会做 let a if conditional a
  • 线程上的 Clojure 错误:java.lang.IllegalArgumentException:键必须是整数

    我对两件事感到困惑 一 错误消息本身 第二 这段代码启动了如此多的线程 我本以为它会启动 2 或 3 个线程来响应单个请求 但是当我在本地主机上运行它并将浏览器指向它 仅一次 时 它会启动 40 个线程 诚然 我使用的是 Chrome 它在
  • 我想在 JavaDoc 中添加 JavaScript

    div class en Documentation in English div div class nl Documentatie in Nederlands div public void myFunction 随后编辑 JavaDo
  • QT:qmake 无法识别 3dcore、3drender

    我在用qmake编译我的QT项目 在我的 pro文件我有一行 QT 3dcore 3drender 3dinput 3dextras 执行时qmake myprofile pro我收到错误 Project ERROR Unknown mod
  • Clojure deftype 中的可变字段?

    我正在尝试 Clojure 1 2 特别是受支持的可变字段deftype根据clojure org 文档 http clojure org datatypes 但我无法让装置工作 更新字段的语法是什么 或者可变性还没有实现吗 definte
  • 通过 XAML 绑定将自定义对象传递给 UserControl

    我想要做的是创建一个 UserControl 我可以向其传递一个 Address 对象 似乎当我经过Address Binding Path Person Address 到 UserControl 嵌入的 TextBox 绑定到Text
  • 类库和框架有什么区别

    我整天听到术语 类库 基类库 框架 框架的亮点是什么 基类库又是什么 类库和软件框架之间的区别特征是 在框架中 控制流不是由用户的代码决定的 而是由框架决定的 这也被称为好莱坞原则 不要给我们打电话 我们给您打电话 顺便说一下 还有一个不错
  • 如何使用 PowerShell 将文件移至回收站?

    当使用rm在Powershell中使用命令删除文件 它们将被永久删除 相反 我希望将已删除的项目放入回收站 就像通过 UI 删除文件时发生的情况一样 如何在 PowerShell 中执行此操作 2017年答案 使用回收模块 https ww
  • 在 Php PDO 的 bindValue 中使用 $id 之前是否需要使用 (int)$id

    我刚刚开始使用 Php 数据对象 我不确定的一件事是我是否必须在查询中使用某些变量之前验证它是否是整数 例如 像这样 id int POST id is this required query pdo gt prepare SELECT F
  • 如何连接到远程 hashcorpVault 服务器

    让我在这里解释一下我的用例 我想尝试在本地进行保管 所以我配置了VAULT ADDR as echo VAULT ADDR http 127 0 0 1 8200 然后我在开发模式下启动了vault vault server dev 一切正
  • Django Rest 框架中的 Post 请求处理

    我正在使用 Django Rest Framework 当前使用 Get 请求从后端提取一些数据 但由于 URL 限制变高 我们计划实现 Post 请求 为此 首先必须使后端 Django Rest API 能够服务于 post 请求 我是