【问题标题】:django - what should you do if you don't need a database engine?django - 如果您不需要数据库引擎,您应该怎么做?
【发布时间】:2011-06-21 23:57:55
【问题描述】:

如果您未能在 setting.py 中设置数据库引擎,则会出现错误。

如果您不需要数据库,是否有某种方法可以为特定站点禁用 django 的数据库部分?

【问题讨论】:

    标签: database django settings


    【解决方案1】:

    如果您想使用 django 的某些功能,例如会话,则需要使用数据库引擎。如果您不需要这些,只需将它们从中间件类中删除即可。

    如果你想使用会话或使用 django 应用程序存储一些数据,但不想做所有复杂的数据库配置,你可以使用 sqlite3 作为你的数据库引擎。它不需要任何设置,您只需要指定一个路径,将在其中创建和存储数据库文件。就是这样:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': '/var/www/mysite/sqlite.db',                      # Or path to database file if using sqlite3.
            'USER': '',                      # Not used with sqlite3.
            'PASSWORD': '',                  # Not used with sqlite3.
            'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
        }
    }
    

    【讨论】:

    • 了解 django 的其他一些功能使用数据库引擎很有用!
    • 感谢 Silver Light 的回答。我已按照您的说明操作并最终得到:“DatabaseError:没有这样的表:django_session”。有任何想法吗? (顺便说一句,我在 Windows 7 上)
    • @urig,进入你的项目根目录并运行python manage.py syncdb
    • Sessions can be configured to use a file or the cache instead of the database. 但是还有其他应用程序需要数据库并且必须被禁用(参见上面的链接)。正如其他人所说的那样,如果您不需要 DB/ORM,您可能想要选择 Django 以外的其他框架。
    【解决方案2】:

    你能在那里列出一个 SQLite 数据库吗?

    虽然我会考虑,如果我是你,如果使用像 Django 这样的重量级框架适合你想要的任务(因为你甚至不需要数据库)。

    【讨论】:

    • 我同意。寻找更轻量级的东西。 Django 很棒,但它迫使你遵循它的思维方式。这也包括数据库。
    【解决方案3】:

    你不需要做任何事情。当我没有定义后端时,我没有收到错误。

    1. django-admin.py startproject myproject
    2. 打开 urls.py 并将 URL 映射到视图。
    3. 运行开发服务器并访问您的页面。

    Bam,没有数据库的 django。

    【讨论】:

    • 我收到此错误:django.core.exceptions.ImproperlyConfigured: You haven't set the database ENGINE setting yet.
    • 你确定你不是想manage.py syncdb吗?它验证了 1.2.3 中缺少的整个数据库行
    • 我在做manage.py testserver 也必须syncdb。这是完整的回溯dpaste.com/389270
    • 是的,任何在没有数据库的情况下访问数据库的测试都会有问题。
    • 如果我尝试运行测试,我会收到 ImproperlyConfigured 错误,即使我的测试不使用(或不应该使用)任何数据库。
    【解决方案4】:

    如果使用 Django 提供的一些内置数据库模型,您可能需要它。这是一个微项目,只有最低限度的响应,所以没有数据库:

    https://github.com/radzhome/django_microproject

    如您所见,settings.py 文件已相当精简。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多