Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
1 / 1 / 3
Регистрация: 03.04.2016
Сообщений: 51

Как создать и работать с двумя базами в django?

05.01.2017, 23:31. Показов 2813. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С недавнего времени стал осваивать django и сталкнулся с проблемой работы с двумя базами данных.
По многочисленным примерам, например здесь,
написал роутер, изменил конфиг в проекте.
Вопрос вот в чем. Как правильно описать модели для второй базы,
и потом как с этим работать. с дефолтной базой проблем нет. Как то так.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2017, 23:31
Ответы с готовыми решениями:

Работать с двумя базами
Добрый день! Можете подсказать реально реализовать работу одновременно с двумя базами? Есть основная база №1, пользователь с помощью...

Как из Delphi создать связь между двумя базами Access?
Сам Access позволяет создать связь с таблицей из другой базы. Как сделать это программно из Delphi?

Как создать ListView с двумя TextView и работать с ними
Как создать ListView с двумя TextView и работать с ними использую класс Adapter(Ну или чем то похожим если такое существует).

2
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
06.01.2017, 03:12
вот тут есть все - и как через роутер, и как вручную
https://docs.djangoproject.com... /multi-db/

а модели описать точно также как и для первой
1
1 / 1 / 3
Регистрация: 03.04.2016
Сообщений: 51
06.01.2017, 14:22  [ТС]
Лучший ответ Сообщение было отмечено Duuly как решение

Решение

Спасибо, но все равно много чего не дошло. Вот мой код:
роутер
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class ProjectDbRouter(object):
    """A router to control all database operations on models in the myapp application"""
 
    def db_for_read(self, model, **hints):
        """Suggest the database that should be used for read operations for objects of type model."""
        if model._meta.app_label == "home":
            return "overhead_data"
        return None
 
    def db_for_write(self, model, **hints):
        """Suggest the database that should be used for writes of objects of type Model."""
        if model._meta.app_label == "home":
            return "overhead_data"
        return None
 
    def allow_relation(self, obj1, obj2, **hints):
        """Deny any relation if a model in specialapp is involved"""
        if obj1._meta.app_label == "home" or \
                obj2._meta.app_label == "home":
            return False
        return None
 
    def allow_syncdb(self, db, model):
        """Deny sync db for the specialapp models"""
        if model._meta.app_label == "home":
            return False
        if db == "overhead_data":
            return False
        return None
приложение - home, бд - overhead_data.

В бд по умолчанию я ничего связанного с работой не храню.
В overhead_data хранится служебная информация.
И будет бд для хранения информации относящейся к разны странам.

Вот код который я записал в models.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from django.db.models import *
 
# Create your models here.
 
class Services(Model):
    name_en = CharField(max_length = 50, unique=True)
    name_ru = CharField(max_length = 50)
    priority = IntegerField()
 
    class Meta:
        db_table = 'services'
        # managed = False
 
class Comfort(Model):
    name_en = CharField(max_length = 50, unique = True)
    name_ru = CharField(max_length = 50)
    type_point = TextField()
 
    class Meta:
        db_table = 'confort'
        # managed = False
 
class Countries(Model):
    name_en = CharField(max_length = 50, unique = True)
    name_ru = CharField(max_length = 50)
    border = TextField() #svg текст с контуром страны
    flag = TextField() #svg текст с изображением флага
    active = BooleanField() #участвует в поиске (да/нет)
 
    class Meta:
        db_table = 'countries'
        # managed = False
 
class Regions(Model):
    country = IntegerField() #id страны
    name_en = CharField(max_length = 50)
    name_ru = CharField(max_length = 50)
 
    class Meta:
        db_table = 'regions'
        # managed = False
 
class Cities(Model):
    country = IntegerField()
    region = IntegerField()
    name_en = CharField(max_length = 50)
    name_ru = CharField(max_length = 50)
    important = BooleanField() #главный в регионе
 
    class Meta:
        db_table = 'cities'
        # managed = False

Как мне создать таблицы по этим объектам в нужной мне базе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.01.2017, 14:22
Помогаю со студенческими работами здесь

Как работать с базами данных?
Подскажите пожалуйста как на делфи написать открытие файлов б.д. таких как к примеру MDF,SQL или access.

Как грамотно работать с базами 1С
Есть такая задача: есть локальная сеть, в которой есть комп с 1С. Такой вопрос, как грамотно организовать работу с базами 1С (с удаленных...

Как работать с базами данных
в делфи я имел такую вещь: DBD32.EXE это БД есть что та в шарпе наподобе DBD32.EXE ???

Как научиться работать с базами данных?
Кто-то может подсказать литературу, сайты или ссылки форума, где подробно для чайников разжёвывается с самых основ такое понятие как базы...

Как из frontend работать с базами данных
Друзья, я больше года изучаю фронтенд, в последний месяц учу реакт. Но в стороне бэкенда не понимаю ничего. Я создаю свой сайт, в котором...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru