如何创建部署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:转载到其它平台请注明作者姓名及原文链接。

糖果

糖果
LUA从入门到放弃

Moonscript如何显示复选框

Moonscript如何显示复选框 Continue reading

Lapis框架的常用处理方法

Published on March 02, 2017