如何使用WSGI部署Django

2024-12-25 23:59:07
推荐回答(1个)
回答1:

第一部分:安装必要工具。
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
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形式的应用,比如SAE和Mopaas,
不同的是,在SAE上有些现成的例子。Mopaas需要自己从头写,这三个例子
在Mopaas生产环境下都运行测试通过。在coding.net的WEB IDE也可成功运
行。