基本上,我已逐步按照本指南https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04进行操作,现在我可以完美地看到我的网站www.XXX.com上显示文字“ Hello There”。
第一个问题是,无论我对“ return”文件进行多少更改,我都将始终看到“ Hello There”文本。我也尝试过多次重启nginx,但这是行不通的。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
#line that I usually try to edit, but nothing happens...
return "<h1 style='color:blue'>Hello There!</h1>"
if __name__ == "__main__":
app.run(host='0.0.0.0')
此外,本教程没有说明在何处将文件夹“静态”和“模板”与Flask进行通信。我已经学到了很多有关更改nginx conf文件和/或重定向的知识,几乎每个星期我都会尝试看完所有教程,但是到目前为止,仍然没有任何效果。
如何更改html?我应该在哪里编写index.html,以便Flask可以实际看到它,而“ index.html”可以对其进行POST请求?在localhost中,所有内容看起来都不同,因为这里有templates文件夹。但是这里似乎并不在乎。
谢谢!
答案 0 :(得分:0)
uWSGI默认情况下不重新加载python代码。更改代码时,您必须手动重新启动或重新加载uWSGI,或者将uWSGI配置为自动重新加载。 uWSGI有许多可以使用的配置选项。
对于开发,您可以使用--python-autoreload
选项。每次代码更改时都会重新加载,类似于django runserver。此选项会影响性能,因此不应在生产中使用。选项可以是命令行标志,也可以包含在uwsgi配置文件中。
[uwsgi]
module = wsgi:app
python-autoreload = true
...
在生产环境中,还有许多其他方法可以重新加载应用程序。最简单的方法可能只是向uwsgi进程发送SIGHUP
信号。例如,使用linux命令pkill
pkill --signal SIGHUP uwsgi
另一种选择是使用touch-reload
。如果修改了文件,那只会监视单个文件的更改并重新加载uWSGI。这样就可以在生产中使用它而没有太多的开销。
[uwsgi]
module = wsgi:app
touch-reload = /tmp/somefile
...
使用命令touch /tmp/somefile
更新文件时间戳。
uWSGI文档的此部分介绍了配置重载的其他几种方法:The Art of Graceful Reloading