如何在Mopaas上,创建部署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.12.安装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:88882.创建一个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:88883.创建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形式的应用,比如SAE和Mopaas,
不同的是,在SAE上有些现成的例子。Mopaas需要自己从头写,这三个例子
在Mopaas生产环境下都运行测试通过。在coding.net的WEB IDE也可成功运
行。
作者:糖果
PS:转载到其它平台请注明作者姓名及原文链接。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
d对于这样的应用怎么搞?一直部署django不成功,求指教