1, 安装apache ?mod_WSGI

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 映射到视图函数。


 
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






郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。