django дБ и sqlite используют разные параметры стиля? - PullRequest
0 голосов
/ 12 февраля 2020
def getAppName(cursor, appId):
  cursor.execute("SELECT name FROM App WHERE id=?", (appId,))
  return cursor.fetchone()

У меня есть функция getAppName, которая будет вызываться курсором raw sqlite и курсором django db.

https://docs.djangoproject.com/en/3.0/topics/db/sql/#connections -и-курсоры состояния django для курсора БД требуется заполнитель в стиле "% s", а для курсора необработанного sqlite требуется? стиль заполнителя.

Как моя функция может быть разделена между django и обычными приложениями?

1 Ответ

0 голосов
/ 12 февраля 2020

Именно поэтому лучше использовать ORM, чем делать прямые необработанные SQL вызовы. Если вы это сделаете, то базовый ORM автоматически сделает соответствующие SQL изменения в зависимости от движка.

Итак, App.objects.get(id=appId).name и ваша модель будет выглядеть так:

class App(models.Model):
    name = models.CharField(max_length=256)

Тогда в зависимости от настроек DATABASE соответствующий движок переведет его в SQL для используемой базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...