1, 安装apache mod_WSGI
2, 安装 flask
pip install Flask==0.9
3, 创建自己的 flask app
在 Flask 中的 “Hello, World”
现在在你的 microblog 文件夹中下有一个 flask 子文件夹,这里有 Python 解释器以及 Flask 框架以及我们将要在这个应用程序中使用的扩展。 是时候去编写我们第一个 web 应用程序!
在 cd 到 microblog 文件夹后,我们开始为应用程序创建基本的文件结构:
mkdir app mkdir app/static mkdir app/templates mkdir tmp
我们的应用程序包是放置于 app 文件夹中。子文件夹 static 是我们存放静态文件像图片,JS文件以及样式文件。子文件夹 templates 显然是存放模板文件。
让我们开始为我们的 app 包(文件 app/__init__.py )创建一个简单的初始化脚本:
from flask import Flask app = Flask(__name__) from app import views
上面的脚本简单地创建应用对象,接着导入视图模块,该模块我们暂未编写。
视图是响应来自网页浏览器的请求的处理器。在 Flask 中,视图是编写成 Python 函数。每一个视图函数是映射到一个或多个请求的 URL。
让我们编写第一个视图函数(文件 app/views.py ):
from app import app @app.route(‘/‘) @app.route(‘/index‘) def index(): return "Hello, World!"
其实这个视图是非常简单,它只是返回一个字符串,在客户端的网页浏览器上显示。两个 route 装饰器创建了从网址 / 以及 /index 到这个函数的映射。
能够完整工作的 Web 应用程序的最后一步是创建一个脚本,启动我们的应用程序的开发 Web 服务器。让我们称这个脚本为 run.py,并把它置于根目录:
#!flask/bin/python from app import app app.run(debug = True)
这个脚本简单地从我们的 app 包中导入 app 变量并且调用它的 run 方法来启动服务器。请记住 app 变量中含有我们在之前创建的 Flask 实例。
要启动应用程序,您只需运行此脚本(run.py)。在OS X,Linux 和 Cygwin 上,你必须明确这是一个可执行文件,然后你可以运行它:
chmod a+x run.py
然后脚本可以简单地按如下方式执行:
./run.py
在 Windows 上过程可能有些不同。不再需要指明文件是否可执行。相反你必须运行该脚本作为 Python 解释器的一个参数:
flask/Scripts/python run.py
在服务器初始化后,它将会监听 5000 端口等待着连接。现在打开你的网页浏览器输入如下 URL:
http://localhost:5000
另外你也可以使用这个 URL:
http://localhost:5000/index
你看清楚了路由映射是如何工作的吗?第一个 URL 映射到 /,而第二个 URL 映射到 /index。这两个路由都关联到我们的视图函数,因此它们的作用是一样的。如果你输入其它的网址,你将会获得一个错误,因为只有这两个 URL 映射到视图函数。
来源: <http://www.pythondoc.com/flask-mega-tutorial/helloworld.html#flask-hello-world>
4,配置apache
<VirtualHost *:8089>
ServerName mail.aric.org
# WSGIDaemonProcess myflask user=apache group=apache threads=5
WSGIScriptAlias / /var/www/html/myflask/myflask.wsgi
<Directory /var/www/html/myflask>
# WSGIProcessGroup myflask
# WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
5, 配置 /var/www/html/myflask/myflask.wsgi
import sys
sys.path.insert(0, ‘/var/www/html/myflask‘)
from run import app as application
这里的run 就是 run.py 在flask中这个好像就叫一个app
参考:http://my.oschina.net/klausgao/blog/340990