Django站点

时间:2016-01-17 07:12:56

标签: python django python-3.x django-forms pythonanywhere

我一直在研究我的Django网站的本地主机副本一段时间,但最后决定是时候将它上传到PythonAnywhere了。该站点在我的本地主机上运行良好,但是当我为新站点进行初始迁移时,我遇到了奇怪的错误。例如,我明白了:

  

mysql.connector.errors.DatabaseError:1264:超出范围的值   第1行的“已应用”列

'applied'不是我模型中的一个字段,所以这个错误必须由Django生成表格供自己使用。我刚刚在MySQL管理器中检查了我的localhost,而'applied'字段似乎来自表django_migrations。

为什么Django错误地设置表供自己使用?我已经多次删除并重新编译数据库,但错误仍然存​​在。如果有人知道会导致什么,我会非常感谢你的建议。

我的网站前端仍显示Hello World页面,而Admin链接则显示页面不存在错误。在这个阶段,我将假设这与数据库错误有关。

编辑:有关我无法访问网站前端的其他信息:

事实证明,当我将预先构建的网站导入PythonAnywhere时,我必须编辑我的wsgi.py文件以指向应用程序。现在的麻烦是我不确切地知道要放在那里。当我按照PythonAnywhere帮助文件中的标准指令时,似乎没有任何改变。有关网站的详细错误消息似乎也很短,以帮助解决它。是否有办法关闭标准的hello world占位符页面并查看服务器错误消息?

2 个答案:

答案 0 :(得分:1)

正如我在上面的评论中所说,事实证明数据库的问题是由于将Django的升级从1.8升级到1.9。我忘了这件事。将我的网站回滚到Django 1.8后,数据库迁移正确运行。

我无法访问该网站的原因是因为我必须编辑wsgi.py文件,但我正在编辑错误的版本。我使用的nginx localhost Web服务器将它保存在与PythonAnyhwere实现不同的文件夹位置。我从我的localhost副本上传了该文件,并根据PythonAnywhere的帮助系统上的说明对其进行了编辑,但没有发现PythonAnywhere的服务器没有读取它。我真正需要做的是通过控制面板上的Web选项卡访问它来编辑正确的文件。编辑此文件后,网站前端开始按预期工作。

答案 1 :(得分:0)

对于我来说,这个问题也出现在版本1.10上,并带有一个全新的项目。我发现如果您使用recommended driverconnector in the documentation,则迁移可以正常运行。

如果您不想阅读文档,请简单地说:

  1. 安装MySQLdb for python 2.7或mysqlclient for python 3.3 +
  2. 修改settings.py文件。在DATABASES字典集中:

    'ENGINE': 'django.db.backends.mysql',