如何创建部署WSGI类型的(Django, Tornado, Flask)Python应用
作者:糖果
第一部分:安装必要工具。
1.因为这是部署Python开发环境,所以安装pip可以简化一些软件的安装过程。(PIP对应Lua的luarocks)
sudo apt-get install python-pip
安装三个Python框架
sudo pip install flask
sudo pip install django==1.5.1
sudo pip install tornado==3.1.1
2.安装Gunicorn,这是运行Python的WSGI HTTP服务。
sudo pip install gunicorn
3.Virtualenv, 安装这个是因为,在部署Django的时候,使用了不同的版本。
sudo pip install virtualenv
第二部分:创建部署应用。
1.创建一个WSGI类型的Tornado应用。
import tornado.web
import tornado.wsgi
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("My source code in the MoPaas server by python Tornado!")
settings = {
"debug" : True,
"static_path": "static",
}
#####
urls = [
(r"/", MainHandler),
]
app = tornado.wsgi.WSGIApplication(urls, **settings)
启动这个服务:
gunicorn -w 4 torapp:app -b 0.0.0.0:8888
2.创建一个Flask应用。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "My source code in the MoPaas server by python Tornado!"
if __name__ == "__main__":
app.run()
启动这个服务:
gunicorn -w 4 server:app -b 0.0.0.0:8888 --log-level debug
3.创建Django应用。
Django是一个比较大的WEB应用,创建各部署的过程,稍微复杂一些。
创建工程
django-admin.py startproject hotdoc
创建应用
python manage.py startapp verp
创建数据库表
python manage.py syncdb
启动工程
gunicorn hotdoc.wsgi:application -b 0.0.0.0:8888
需要在修改工程目录下的settings.py在INSTALLED_APPS中加入,verup和gunicorn:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'verup',
'gunicorn'
)
以上,本地开发环境是没问题的。
这些步骤也可以用virtualenv新创建一个虚拟环境完成,本地创virtualenv可以目前在WEB IDE上没有测试通过,理论上说,如果coding的WEB IDE是基于Docker的,virtualevn也应该好用。
mkdir ~/environments/
virtualenv ~/environments/tutorial/
cd ~/environments/tutorial/bin
source bin/activate
目前的Paas平台上的Python服务就是WSGI形式的应用,比如Mopaas,不同的是,在SAE上有些现成的例子。Mopaas需要自己从头写,这三个例子在Mopaas生产环境下都运行测试通过。在coding.net的WEB IDE也可成功运行。
PS:转载到其它平台请注明作者姓名及原文链接。