【问题标题】:What is the correct way to handle a POST request in Django class based view?在基于 Django 类的视图中处理 POST 请求的正确方法是什么?
【发布时间】:2015-12-02 05:21:18
【问题描述】:

在基于类的视图中,我正在处理一个发布请求(这是一个 AJAX 调用)。我在数据库表中插入一些数据并将一些 json 返回到前端。

def post(self,request,*args,**kwargs):

    result_data = {}
    doc = kwargs['doc']
    doc_obj = Document.objects.get_document(doc)

    doc_id = doc_obj.doc_id
    reference_obj = Reference.objects.save_to_db(request,doc_id)

    friendly_name = reference_obj.friendly_name
    result_data['friendly_name'] = friendly_name

    return HttpResponse(json.dumps(result_data),content_type='application/json')

我的问题是这是处理发布请求的正确方法吗?我的疑问出现在这里 - 我正在将一些数据写入数据库并返回我已写入数据库的相同数据的属性的 json。

我是否应该采取不同的做法,即首先将一些数据存储在数据库中,然后只返回行的 id,然后再次在同一个 URL 上发出 GET 请求?

【问题讨论】:

    标签: json django post get


    【解决方案1】:

    我会说如果它是一个 API,最好通过返回整个对象的方式来最小化查询的数量。如果要提供 Web 用户界面,则返回 id 并从客户端本身获取其余数据(如果需要显示)会更简单。

    无论哪种方式都可以。收益可以忽略不计。我还看到应用程序给出了本地的正面反馈,然后如果请求不成功,则用负面反馈代替。该技术可以提高响应能力,这总是值得赞赏的。

    【讨论】:

      【解决方案2】:

      Django-rest-framework 返回插入对象的 json,所以我认为复制该行为是合理的。

      【讨论】:

        猜你喜欢
        • 2014-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-28
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        相关资源
        最近更新 更多