我希望允许无权访问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
命令?