我对Django和整体编程尚不熟悉,我正尝试将用Django开发的个人网站部署到heroku。
我觉得自己已经走到最后一步,但是一个错误不断困扰着我,我无法自己解决或使用文档解决问题。
我的项目文件夹如下: enter image description here
我的个人档案: enter image description here
我的wsgi文件:
在heroku日志中,我得到以下信息:
$sql = "SELECT * FROM sheet1 WHERE id = '$_POST[text]'";
$result = mysqli_query($con,$sql);
If ($row = mysqli_fetch_array($result))
{
for($i = 2; $i < 10; $i++){
$c = mysqli_fetch_field_direct($result,$i)->name;
echo $row[$i] ; echo $c[$i];
}
}
有很多蓝线,但是我认为这是有问题的(即无法从中找到设置文件)
如果不清楚,我还能提供什么吗?
感谢您的帮助
我欢迎任何问题
更新!
因此,我将使用的数据库从SQLite3更新为PostgreSQL,但仍然出现服务器错误500。
这是我的manage.py文件,用于放置PostgreSQL:
该应用在我执行2020-01-04T15:45:47.211072+00:00 app[web.1]: ModuleNotFoundError: No module named 'blog'
时运行,但在heroku部署时却没有运行。
heroku日志如下:
答案 0 :(得分:0)
总结调查启动问题的过程。有两个问题:
1。。项目布局因本地开发和在Heroku上的生产而异,而代码库设置为除 wsgi以外的最高级别 mysite 作为homepath .py 文件导致了花费更多时间进行故障排除。
.
├── Procfile <- web: gunicorn mysite.mysite.wsgi
├── mysite
│ ├── __init__.py
│ ├── blog
│ ├── db.sqlite3
│ ├── manage.py <- python manage.py runserver
│ ├── mysite
│ ├── static
│ ├── staticfiles
│ └── templates
├── requirements.txt
└── venv
解决方案:
修复 mysite 的代码库作为本地路径,并使用-chdir 或-pythonpath 设置运行gunicorn以具有适当的路径设置
-chdir :在应用加载之前将Chdir定位到指定目录:
web: gunicorn --chdir mysite mysite.wsgi
-pythonpath :将目录添加到Python路径
web: gunicorn --pythonpath mysite mysite.wsgi
2。迁移。没有执行任何迁移操作。
解决方案:
在Procfile中添加 release 阶段,该阶段将在每次部署应用程序时应用迁移:
release: cd mysite && python manage.py migrate
在解决了这两个问题之后,该应用程序便启动并运行。