用户创建的动态数据库 - django

时间:2014-01-25 10:19:00

标签: database django sqlite dynamic

我想创建一个网站,用户可以登录并创建自己的数据库(也可以操作它们)。这些数据库非常小,主要用于测试。阅读suggested solutions here on SO,我似乎有几个选择:

  • 使用预定义的功能(如建议的here)动态地将数据库添加到settings.py.我发现这是一个非常糟糕的主意,因为它看起来像是一个hack并暴露了你自己的settings.py文件。
  • 将SQlite文件存储在媒体中,并使用django.db.connections连接到它们。这似乎是一个合理的解决方案,但我不知道如何执行它。
  • 不要使用实际的数据库,而是使用XML或其他格式来存储信息,这可能会让我失去效率
  • 我自己的想法,这可能是疯狂的愚蠢 - 将SQlite文件存储为MySQL数据库中的blob。

最终目标是允许用户在网站上创建django模型,然后对它们执行查询(这是一个学习网站)。有任何想法吗?

1 个答案:

答案 0 :(得分:3)

使用面料比伪代码略多:)

from fabric import api

def django_start_project(project_name):
    api.run('mkproject %s' % project_name)  # Assumes you have virtualenvwrapper
    with api.prefix('workon %s' % project_name):
        api.run('pip install django')
        api.run('django-admin.py startproject')

最后一部分当然需要一些工作,但这是要点:)

这样称呼:

fab django_start_project:your_project

依赖关系: