Django模型可在Django外部进行访问,而无需访问设置文件

时间:2018-07-03 15:31:46

标签: python mysql django django-models

我希望允许无权访问Django项目根文件夹(因此无权访问settings.py文件和数据库密码的人)使用Django之外的特定模型。

我希望某些用户能够使用强大的Django结构(查询集等)查询数据库中的某些表,而无需完全访问所有表。

以下任何策略都行得通吗?甚至有可能做到这一点?这类问题的最佳做法是什么?

想法1:使用my_project.settings设置Django。

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
django.setup()

问题在于它需要访问项目根文件夹并授予对所有数据库的访问权限

想法2:使用访问受限的其他数据库用户设置django

from django.conf import settings    
settings.configure(
    DATABASE_ENGINE = 'django.db.backends.mysql',
    DATABASE_NAME = '<db_name>',
    DATABASE_USER = 'new_user',
    DATABASE_PASSWORD = '<psw>',
    DATABASE_HOST = '<host>',    
    INSTALLED_APPS = ...
)

我还没有做好这项工作,但是我感觉django.setup()会失败,因为数据库用户将无法访问所有表。此外,它仍然需要访问项目的根文件夹。

想法3:直接从python使用数据库(MySQL),与Django完全没有链接。

可能不建议这样做,但这是我到目前为止唯一的解决方案。 是否有任何类似于django的python软件包,可允许以类似于Django的方式查询数据库?

想法4:也许使用了自定义manage.py命令?

0 个答案:

没有答案