Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Python: Web

Войти
Регистрация
Восстановить пароль
 
Duuly
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 39
#1

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

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

С недавнего времени стал осваивать django и сталкнулся с проблемой работы с двумя базами данных.
По многочисленным примерам, например здесь,
написал роутер, изменил конфиг в проекте.
Вопрос вот в чем. Как правильно описать модели для второй базы,
и потом как с этим работать. с дефолтной базой проблем нет. Как то так.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2017, 23:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как создать и работать с двумя базами в django? (Python):

Как установить Django и создать страницу? - Python
Всем привет. Кто нибудь может описать процесс установки джанго. Плюс пример создания нового проекта какой нибудь простенькой странички,...

Как в PyCharm создать проект Django? - Python
Что сделал: 0. Установил PyCharm 3 CE 1. Установил Python33 2. Установил Django-1.5.4 3. Прописал пути в path:C:\Program...

Создать личный кабинет (Django) - Python
Привет всем. 5 дней изучаю питон, прошу сильно не пинать. Прошел курс на ютуьбе, теперь стараюсь сам программировать :) В общем...

Настроить авторизацию через социальные сети в django с помощью Django Social Auth - Python
Пытаюсь настроить авторизацию через социальные сети в django с помощью Django Social Auth, но вылетаю с ошибкой WrongBackend, не работает...

Django, как начать - Python
здравствуйте. читаю книжку http://djbook.ru/ на компе установлено widows 7 python 2.7 django 1.4 mysql-installer-5.5.22.1 ...

Как обновить Django? - Python
Как обновить Django с версии 1.4 до версии 1.5? В интернете нахожу только как устанавливать Django

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jabbson
Модератор
Эксперт по компьютерным сетям
3141 / 2219 / 455
Регистрация: 03.11.2009
Сообщений: 7,001
Записей в блоге: 3
06.01.2017, 03:12 #2
вот тут есть все - и как через роутер, и как вручную
https://docs.djangoproject.com/en/1....s/db/multi-db/

а модели описать точно также как и для первой
1
Duuly
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 39
06.01.2017, 14:22  [ТС] #3
Спасибо, но все равно много чего не дошло. Вот мой код:
роутер
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2017, 14:22
Привет! Вот еще темы с ответами:

Как установить и запустить Django? - Python
Здравствуйте пытаюсь запустить Django установил python последней версии , установил django через: python setup.py install и начал...

Django: Как получить массив? - Python
Помогите, пожалуйста. Подскажите, как получить массив чисел в представлении.Никак не могу разобраться. Делаю так: cursor =...

Как работает статика в django? - Python
Здравствуйте, начал изучать django (v1.10.4), не могу понять, как работает статика. Допустим, я создал директорию static/app/ style.css в...

Как новичку справиться с Django? - Python
Не могу похвастаться крутыми знаниями в web разработках, но на Wordpress могу творить очень многое. Включая тырнет магазины и каталоги....


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru