License: Attribution-NonCommercial-ShareAlike 4.0 International
本文出自 Suzf Blog。 如未注明,均为 SUZF.NET 原创。
转载请注明:http://suzf.net/post/909
Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask使用BSD授权。 Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。 WSGI Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。 场景再现
CentOS release 6.7 httpd-2.2.15-47.el6.centos.4.x86_64 python-2.7.3
Flask==0.10.1
mod_wsgi-3.2 [ 使用 新的 python 重编译 ]
关于如何升级 WSGI 中 python 版本 请参见本站 How-to Make mod_wsgi use python2.7.3 instead of python2.6.6
创建 Flask 应用程序
#pwd /var/www/html/test #ls hello.py hello.wsgi #cat hello.py #!/usr/bin/env python import sys from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'hello world' @app.route('/user/<username>') def show_user_profile(username): return 'Welcome %s to access suzf.net' % username #cat hello.wsgi #!/usr/bin/env python import os import sys EXTRA_DIR = os.path.dirname(os.path.realpath(__file__)) if EXTRA_DIR not in sys.path: sys.path.append(EXTRA_DIR) #sys.path.insert(0, '/var/www/html/test') from hello import app application = app if __name__ == '__main__': app.run()
Apache 配置更新 & 重载进程
#cat /etc/httpd/conf.d/test.conf WSGIScriptAlias /test /var/www/html/test/hello.wsgi WSGIPythonHome /usr/local WSGIScriptReloading On <Directory /var/www/html/test> Order deny,allow Allow from all </Directory>
然后 elinks 访问 http://{FQDN}/test || http://{FQDN}//user/username 可以看到 Flask 已经跑起来了 ~~~
相关文档
How To Deploy Flask Web Applications Using uWSGI Behind Nginx on CentOS 6.4
another-pythonmercurialmod_wsgi-on-centos-howto-12