【问题标题】:Generic way to perform CURD operation执行 CRUD 操作的通用方法
【发布时间】:2020-05-15 05:07:36
【问题描述】:

我是 Django 框架的新手。我想创建可以接受以下正文的通用控制器

{
    "operation":"select",
    "fields":["user_id","user_name","user_email"],
    "table":"user",
    "where":[        
            {
                "field":"user_id",
                "value":"1234",
                "operator":"=",
                "endwith":null
            }

    ]
}

生成正确的 SQL 查询并生成正确的 JSON 输出。 有什么方法可以使用 Django rest 框架来做到这一点?

【问题讨论】:

  • 没有DRF 中的内置方法 可以做到这一点。
  • @ArakkalAbu 这种方法正确吗?
  • CURD 是一种 DRF 无法做到的食物:D Django 中没有任何内置的东西来执行这样的事情。但是你可以很容易地做到这一点。使用 mysql 驱动程序格式解析您的请求,查询以字典形式获取结果,您可以将其序列化,只需传入 JsonResponse

标签: django database django-rest-framework django-mysql


【解决方案1】:

您可以定义自己的 API 视图并在其中执行所有逻辑。没有内置的方法可以做到这一点。

关于你的第二个问题 - 老实说,我觉得采用 REST 框架并使用 REST 范式做所有有争议的事情对我来说似乎很奇怪。例如 - 表名和操作应该是 REST 中的特定 URL 和特定 HTTP 方法。

如果你想像问题中那样做,我可以建议查看 GraphQL 和相应的 Django 包:

关于 REST 的一些基础知识以及应该如何完成:

【讨论】:

    猜你喜欢
    • 2014-11-23
    • 1970-01-01
    • 2020-06-28
    • 2012-09-19
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 2020-01-01
    相关资源
    最近更新 更多