小编Vij*_*ker的帖子

根据django中的请求动态设置数据库

我正在用python-django编写一个多租户应用程序.

我想根据每个请求设置数据库连接.我想我可以写一个中间件,我们设置数据库用于该特定数据库.

import re
from django.db import connections

class SetTenantDatabase(object):
    def process_request(self, request):
        pattern = re.compile("\\b(http://|https://|www.|.com|8000|:|//)\\W\\d+", re.I)
        words = request.get_host()        
        db_name = [pattern.sub("", words)][0].split('.')[0]
        connections.databases['new-alias'] = { 
        'default': {
                    'ENGINE': 'django.db.backends.postgresql_psycopg2',
                    'NAME': 'store1',
                    'USER': 'xxx',
                    'PASSWORD': 'xxx',
                    'HOST': '127.0.0.1',
    } 
                                              }
        conn = connections['new-alias']
        return None
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我该怎么办呢.方法错了或解决方案是否可行,最后如何?

python django multi-tenant django-database

7
推荐指数
2
解决办法
3409
查看次数

标签 统计

django ×1

django-database ×1

multi-tenant ×1

python ×1