Обработка локальной и удаленной БД в Django - PullRequest
0 голосов
/ 26 сентября 2010

Я использую Django и MySQL для обслуживания сайта.У меня есть собственный сервер MySQL на локальном хосте для моего сайта.Теперь у меня есть сторонняя база данных MySQL, которую мне нужно использовать для чтения и записи на удаленном хосте.Я установил информацию о новой базе данных в своем файле settings.py, но при попытке доступа к удаленной БД возникает проблема.Поскольку новая БД не создана мной, у меня нет соответствующих классов в файле models.py.Чтение из него обычным способом Model.objects.using ('remote_db_name'). Get (pk = 0) не работает, потому что он выдает ошибку NameError.

Мне было интересно, как правильно обрабатыватькак локальная, так и удаленная база данных в Django, особенно когда удаленная база данных дает вам только привилегии SELECT и INSERT.Все учебники, которые я нашел в Интернете, посвящены нескольким базам данных, определенным на одном сайте Django, поэтому в файле models.py содержатся все необходимые данные.

Спасибо за любую помощь заранее!

Ответы [ 2 ]

1 голос
/ 26 сентября 2010

У меня было много трудных моментов с устаревшей поддержкой Django - Django не был предназначен исключительно для поддержки устаревших баз данных. Конечно, есть некоторые инструменты / методы (как сказал выше Нед), но я бы предпочел SQLAlchemy в качестве альтернативы для вас. Это очень быстро, и он был разработан для поддержки любых типов баз данных, независимо от того, были ли они созданы с помощью sqlalchemy, или они не были устаревшими БД.

Конечно, если вам нужны все остальные элементы Django, воспользуйтесь решением Неда, но помните, что вам нужно создать основные таблицы django в этой устаревшей базе данных, поэтому вам понадобится привилегия CREATE.

1 голос
/ 26 сентября 2010

У вас есть два варианта:

  1. Использовать поддержку устаревшей базы данных Django для автоматического создания моделей для существующей базы данных.

  2. Пропустите Django ORM и используйте сырой SQL для выполнения операторов SQL для базы данных.

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