Функция запроса mysql работает в оболочке Python, но при запуске в Python ошибка ImproperlyConfigured - PullRequest
0 голосов
/ 26 июня 2019

Я практикую использование mysql в django и хотел выполнить простой запрос к базе данных, которую я настроил в своем settings.py. Я подключен к базе данных и могу нормально выполнить запрос в оболочке manage.py. Тем не менее, когда я запускаю тот же код в файле Python, он не работает. Кто-нибудь знает, почему запрос не работает в файле python?

query : 
from django.db import connections

def query(id):
    c = connections['default'].cursor()
    c.execute("SELECT * FROM `peptides_proteins_000005 WHERE protein_id=%s;",[id])
    rows = c.fetchone()
    return rows

print(query(4519))

В оболочке я получу строку с нужной мне информацией, однако при запуске в файле python я получаю эту ошибку:

django.core.exceptions.ImproperlyConfigured: запрошен параметр DATABASES, но параметры не настроены. Вы должны либо определить переменную среды DJANGO_SETTINGS_MODULE, либо вызвать settings.configure () перед тем, как получить доступ к настройкам.

Есть ли способ запустить эту команду в views.py или другом файле python без использования inspectdb для помещения моей базы данных в модели?

1 Ответ

1 голос
/ 26 июня 2019

Ну, Джанго так не работает.Когда вы выполняете набор инструкций с помощью оболочки django, он знает, где искать db, из-за файла settings.py, который загружается в фоновом режиме с помощью django.setup (), который отвечает за заполнение реестра приложения.Но когда вы используете его в общем случае python shell, он ничего не знает о файле settings.py.Он знает только о выполнении вашего текущего набора инструкций.Он не загружает файл settings.py.

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