【问题标题】:How to divide a large Django project into sub projects for scaling?如何将大型 Django 项目划分为子项目进行扩展?
【发布时间】:2018-05-31 12:18:17
【问题描述】:

Django 项目(电子商务网站),我们需要将其划分为买家、卖家和管理员的子项目,并相应地创建三个数据库。那么,如果在一个项目中更新,我们如何在三个项目中管理相同的模型(Schema)呢?

【问题讨论】:

  • 为项目的公共部分创建 repo 并将其添加到 requements.pip?
  • @BearBrown 我们说的是模型和网站性能等,而不是软件包安装。
  • 我的意思是你可能需要reusable-apps

标签: django git project scaling divide


【解决方案1】:

Django 支持同一项目的多个数据库功能。

这可以通过在settings.py中定义多个数据库属性来实现

DATABASES = {
    'default': {},
    'buyer': {
        'NAME': 'buyer',
        'ENGINE': 'django.db.backends.mysql',
        'USER': '',
        'PASSWORD': ''
    },
    'customers': {
        'NAME': 'customers',
        'ENGINE': 'django.db.backends.mysql',
        'USER': '',
        'PASSWORD': ''
    }
}

需要同时定义路由器。 https://docs.djangoproject.com/en/3.0/topics/db/multi-db/#using-routers

也可以通过使用关键字手动选择数据库 例如。

## fetch
Customer.objects.using('customers').all()
## save
customer_obj.save(using='customers')

当然有多个数据库的一些限制,例如

更多详情可关注官方链接:

https://docs.djangoproject.com/en/3.0/topics/db/multi-db/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2011-02-15
    • 2020-01-11
    • 2014-01-04
    • 1970-01-01
    • 2022-12-24
    • 1970-01-01
    相关资源
    最近更新 更多