Приложения и проекты в Django

Я следую The Django Book 2.0 для изучения Django, и там мы создали статический веб-сайт под названием mysite. После этого мы создали приложение books с базой данных. Я понимаю, что мы можем создать несколько приложений в рамках одного проекта.

Однако мы можем указать только одну базу данных в mysite/settings.py, которая, как я полагаю, будет использоваться всеми приложениями в рамках проекта, поскольку она не указана в books/.

Как можно создать несколько приложений, использующих разные базы данных?

Наконец, каковы некоторые варианты использования нескольких приложений в рамках одного проекта при использовании статической страницы, которой нет в приложении?


person darksky    schedule 25.12.2012    source источник


Ответы (2)


Ознакомьтесь с документацией по django по нескольким базам данных. На самом деле вы можете перечислить столько баз данных, сколько хотите, в настройках DATABASES с разными именами.

В частности, ознакомьтесь с разделом Маршрутизаторы. Вы можете настроить маршрутизаторы в каждом приложении, которые будут направлять ваши модели на использование определенной базы данных.

Что касается вариантов использования нескольких приложений при использовании статической страницы, которой нет в приложении, я не совсем понимаю, о чем вы спрашиваете. Если вы говорите о статических веб-страницах, вы можете использовать flatpages. Это дополнительное приложение django, которое позволяет вам хранить HTML в базе данных для редактирования от администратора.

person Rudy Mutter    schedule 25.12.2012
comment
+1 за ответ на обе части его вопроса. Существует также direct_to_template общее представление, которое является более простым и, в отличие от плоских страниц, проходит через любое промежуточное ПО представления. - person Burhan Khalid; 25.12.2012

В Django вы определяете несколько баз данных следующим образом:

В ваших настройках.py

DATABASES = {
    'default': {
        'NAME': 'app_data',
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'USER': 'postgres_user',
        'PASSWORD': 's3krit'
    },
    'users': {
        'NAME': 'user_data',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te'
    }
}

здесь я определил 2 базы данных по умолчанию и пользователя, чтобы узнать больше о том, как синхронизировать или использовать эти базы данных перейти по этой ссылке

person Crazyshezy    schedule 25.12.2012