python - 更改数据库后 Django 上的内部服务器错误

标签 python mysql django web sqlite

我最近开始了一个 Django 项目。到目前为止,我一直在使用 SQLite3 数据库进行一些测试,但现在我想切换到 MySQL。我配置了设置文件并运行了第一次迁移,一切顺利,我检查了 MySQL 并且表已成功创建。我检查了我的浏览器,那里也没有问题。

对结果很满意,我从项目文件夹中删除了 SQLite3 文件,我怀疑它不再被使用了。好吧,看来我错了:现在当我尝试通过浏览器访问我的网站时,我收到一条没有额外信息的内部服务器错误错误消息(是的,我已经DEBUG = TRUE,没有任何变化).

可能是什么问题?

编辑 1 现在有了更多的代码。这是我的 setting.py 的数据库部分:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'XXX',
        'USER' : 'XXX',
        'PASSWORD' : 'XXX',
        'HOST' : '127.0.0.1',
    }
}

这是 Apache 错误日志:

[Thu Sep 10 16:09:43.899538 2015] [:error] [pid 7503] [remote XXX] mod_wsgi (pid=7503): Target WSGI script 'XXX/api/wsgi.py' cannot be loaded as Python module.
[Thu Sep 10 16:09:43.899757 2015] [:error] [pid 7503] [remote XXX] mod_wsgi (pid=7503): Exception occurred processing WSGI script 'XXX/api/wsgi.py'.
[Thu Sep 10 16:09:43.899962 2015] [:error] [pid 7503] [remote XXX] Traceback (most recent call last):
[Thu Sep 10 16:09:43.900117 2015] [:error] [pid 7503] [remote XXX]   File "XXX/api/wsgi.py", line 16, in <module>
[Thu Sep 10 16:09:43.900423 2015] [:error] [pid 7503] [remote XXX]     application = get_wsgi_application()
[Thu Sep 10 16:09:43.900469 2015] [:error] [pid 7503] [remote XXX]   File "XXX/XXX-env/lib/python3.4/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
[Thu Sep 10 16:09:43.900652 2015] [:error] [pid 7503] [remote XXX]     django.setup()
[Thu Sep 10 16:09:43.900694 2015] [:error] [pid 7503] [remote XXX]   File "XXX/XXX-env/lib/python3.4/site-packages/django/__init__.py", line 18, in setup
[Thu Sep 10 16:09:43.900753 2015] [:error] [pid 7503] [remote XXX]     apps.populate(settings.INSTALLED_APPS)
[Thu Sep 10 16:09:43.900781 2015] [:error] [pid 7503] [remote XXX]   File "XXX/XXX-env/lib/python3.4/site-packages/django/apps/registry.py", line 78, in populate
[Thu Sep 10 16:09:43.900878 2015] [:error] [pid 7503] [remote XXX]     raise RuntimeError("populate() isn't reentrant")
[Thu Sep 10 16:09:43.900961 2015] [:error] [pid 7503] [remote XXX] RuntimeError: populate() isn't reentrant

最佳答案

我终于设法解决了这个问题。问题是因为我的 WSGI 版本错误。为了在 Python 3.4 中使用 WSGI,需要 mod_WSGI 4.2+。

(我仍然不知道为什么当我删除 db.sqlite3 文件时问题开始了。)

参见 this更多细节。我关注samb的分步指南,对我很有用。

关于python - 更改数据库后 Django 上的内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32507317/

相关文章:

Django 标签 : why annotate(same_tags=Count ('tags' )) counts the number of common tags instead of the total number of tags?

python - 使用 get_pip.py 安装 pip SNIMissingWarning

python - 在 OOP 中使用函数是不好的做法吗?

python - 如何遍历数据框字典中的行并更改一些值 - Pandas Python

php - 在 MySQL/PHP 中从数字 ID 生成字母数字 ID

mysql - TimeStamp 列始终为零值

python - 将 int 打包到字符串中

mysql - SQL select ... in (select...) 花费很长时间

python - 在内部服务器上设置 Django(os.environ() 没有按预期工作?)

css - 使用 django 压缩器发布压缩 sass