django - 如果您不需要数据库引擎,您应该怎么做?
Posted
技术标签:
【中文标题】django - 如果您不需要数据库引擎,您应该怎么做?【英文标题】:django - what should you do if you don't need a database engine? 【发布时间】:2011-06-21 23:57:55 【问题描述】:如果您未能在 setting.py 中设置数据库引擎,则会出现错误。
如果您不需要数据库,是否有某种方法可以为特定站点禁用 django 的数据库部分?
【问题讨论】:
【参考方案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】:你不需要做任何事情。当我没有定义后端时,我没有收到错误。
django-admin.py startproject myproject
打开 urls.py
并将 URL 映射到视图。
运行开发服务器并访问您的页面。
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 文件已相当精简。
【讨论】:
以上是关于django - 如果您不需要数据库引擎,您应该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章
SQL2088 安装完成 但失败 找不到数据库引擎启动句柄怎麽回事 求大神 求解释 求解决