gpt4 book ai didi

python - 是否可以将原始 SQL 与 python 的 django web 框架一起使用?

转载 作者:太空宇宙 更新时间:2023-11-04 07:08:51 25 4
gpt4 key购买 nike

我正在从 PHP 切换到 Django/Python,到目前为止我不太喜欢 Django 的一件事是 ORM。插入新行的时候还好,但是当我想选择更具体的东西时,我发现ORM比纯SQL更麻烦,特别是因为我已经很了解SQL了。

那么,我可以在 Django 中编写纯 SQL,还是必须使用 ORM?

如果可能的话,非常欢迎提供有关如何在 Django 中使用 SQL 的示例。

最佳答案

是的!你可以。

https://docs.djangoproject.com/en/1.7/topics/db/sql/

来自 Django 的精彩文档;

有两种方式;

  1. 使用管理器方法 raw()

    https://docs.djangoproject.com/en/1.7/topics/db/sql/#performing-raw-queries

    class Person(models.Model):
    first_name = models.CharField(...)
    last_name = models.CharField(...)
    birth_date = models.DateField(...)

    然后您可以像这样执行自定义 SQL:

    >>> for p in Person.objects.raw('SELECT * FROM myapp_person'):
    ... print(p)
    John Smith
    Jane Jones

    使用下面的方法传递参数。

    >>> lname = 'Doe'
    >>> Person.objects.raw('SELECT * FROM myapp_person WHERE last_name = %s', [lname])
  2. 直接执行自定义 SQL。

    https://docs.djangoproject.com/en/1.7/topics/db/sql/#executing-custom-sql-directly

    from django.db import connection
    def my_custom_sql(self):
    cursor = connection.cursor()
    cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz])
    cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])
    row = cursor.fetchone()
    return row

关于python - 是否可以将原始 SQL 与 python 的 django web 框架一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24328145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com