Deploying flask app in a subfolder on WebFaction
我一直遵循以下说明:http://flask.pocoo.org/snippets/65/
但有些东西写得不太清楚。
所以我的结构是这样的:
1 2 3 4 5 6 7 | /<username>/webapps/flask/ ----__init__.py /<username>/webapps/flask/htdocs/ ----index.py ----config.py ----/app/ (this is my flask application where i have views.py). ----/tmp/ |
我的初始版本:
1 2 3 4 5 6 7 8 | class WebFactionMiddleware(object): def __init__(self, app): self.app = app def __call__(self, environ, start_response): environ['SCRIPT_NAME'] = '/app' return self.app(environ, start_response) app.wsgi_app = WebFactionMiddleware(app.wsgi_app) |
号
我的index.py:
从Flask导入应用程序作为应用程序
我的httpd.conf:
1 2 3 4 5 6 7 8 9 10 11 | WSGIPythonPath /home/<username>/webapps/flask/htdocs/ #If you do not specify the following directive the app *will* work but you will #see index.py in the path of all URLs WSGIScriptAlias /app /home/<username>/webapps/flask/htdocs/index.py <Directory /home/<username>/webapps/flask/htdocs> AddHandler wsgi-script .py RewriteEngine on RewriteBase /app WSGIScriptReloading On </Directory> |
我从控制面板安装为"wsgi 3.4/python2.7",但我必须使用easy-install2.6安装在ssh sqlacalchemy、flask login等中,因为easy-install2.7不存在。
服务器错误日志显示:
1 2 | from flask import app as application [Sun Nov 04 23:29:12 2012] [error] [client 127.0.0.1] ImportError: No module named flask |
。
(我确实重启了Apache2)
错误信息清楚地表明你没有安装烧瓶。如果您在Web派系控制面板中为python 2.7创建了应用程序,那么您还需要为python2.7安装所有libs和flask本身。你说你安装的所有东西都是Easy Instal2.6,这意味着你安装的所有东西都是针对Python2.6的。
我会说,首先安装python 2.7的所有libs和deps(flask也是),然后再试一次。另外,我建议开始使用virtualenv,因为它将有助于以后不要弄乱软件包版本(关于如何在web派系上使用virtualenv部署的一些简短信息http://manavgoel.net/blog/post/2012/7/deploying flask website on web派系)。
查看https://community.webparion.com/questions/12718/installing-flask
确保相应地遵循链接中的步骤。对于步骤2,有很多方法可以通过。但我希望你这样做。
a.先将其复制到文本编辑器中,然后更改appname="urlaskname"PLS Unix区分大小写。
b.之后,将文件保存为anyname.sh(Unix脚本)
c.传输到服务器并运行
1 | chmod a+x anyname.sh |
d.然后在服务器中运行这个来安装flask并为web做好准备。
1 | ./anyname.sh |
号
一切都完成了。
您也可以直接执行这些步骤,但要确保所有的正义,请尝试只复制和编辑AppName。