我以前用PHP构建我的网站,在我的OS X机器上,我希望必须确保我的脚本生活在一个明确指定的位置,我将其定义为我的Apache服务器' s文件根。但是,当我按照simple instructions建立一个Flask网站时,我神奇地得到了一个有效的网站,在我的机器上任何作为文档根目录的地方都没有任何东西,无论我在哪里有我的Flask脚本。这尤其令人困惑,因为我一直认为部署是否涉及在部署服务器的文档根目录下仔细复制我的站点的文件结构。
Flask"来自"在我的OS X机器上?我在哪里"把它"当我部署它(以及我要放什么)?
答案 0 :(得分:2)
它从你放的任何地方开始运行。你肯定知道你保存代码的地方:那就是它。
但是你的错误在于认为这个开发环境是通过Apache运行的,或者确实与你如何在生产中运行它有关。两者都不是真的。您正在使用开发服务器,即单独的Werkzeug项目,但这不适合在prod中运行。
当您准备好部署时,Flask有full instructions关于如何通过mod_wsgi将其连接到Apache,或者设置一个单独的WSGI服务器,您通常会通过反向代理连接到该服务器,例如nginx的。
答案 1 :(得分:1)
假设您在 / path / to / my_project / 下有 main.py ,当您运行内部服务器python main.py
时, Flask < / strong>然后在您的项目文件夹下运行。
当然,内置服务器仅适用于开发,当您尝试部署生产时,通常 Gunicorn (通过wsgi app,阅读更多HERE)或其他网络服务器更适合(并由 Flask 建议)本身。你的生产文件夹可以放在你想要的任何地方,就像Apache PHP一样,你可以把文件夹放在 / var / www / 下( EDITED :正如Daniel Roseman指出的那样,你可能会尝试更改此文件夹位置以确保安全问题),对于 Flask 也是如此,没有什么能阻止您放置文件夹,而是正确设置了权限。 希望这会有所帮助。