与女服务员一起托管Django应用程序

时间:2014-01-12 23:07:40

标签: python django

我正在尝试在我的Ubuntu VPS上托管一个Django应用程序。我已经安装了python,django和waitress,并且目录已移过。

我去了女服务员网站(http://docs.pylonsproject.org/projects/waitress/en/latest/)他们说要像这样使用它:

from waitress import serve
serve(wsgiapp, host='5.5.5.5', port=8080)

我是否将我的应用名称替换为'wsiapp'?我是否需要在顶级Django项目目录中运行它?

2 个答案:

答案 0 :(得分:13)

使用Django 1.9和Waitress 0.9.0进行测试

您可以通过在django项目根目录中创建脚本(例如waitress)并从server.py模块导入应用程序变量来将wsgi.py与django应用程序一起使用:

yourdjangoproject 项目根结构

├── manage.py
├── server.py
├── yourdjangoproject
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py

wsgi.py (您不必编辑此处的任何代码)

"""
WSGI config for olympics2016 project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yourdjangoproject.settings")

application = get_wsgi_application()

<强> server.py

from waitress import serve

from yourdjangoproject.wsgi import application

if __name__ == '__main__':
    serve(application, port='8000')

<强>用法

现在您可以运行$ python server.py

答案 1 :(得分:2)

我设法通过使用bash脚本而不是python调用来使其工作。我创建了一个名为'startserver.sh'的脚本,其中包含以下内容(显然用您的项目名称替换您的项目名称):

#!/bin/bash
waitress-serve --port=80 yourprojectname.wsgi:application

我将它放在顶级Django项目目录中。

更改了所有者执行的权限:

chmod 700 startserver.sh

然后我只是在服务器上执行脚本:

sudo ./startserver.sh

这似乎工作正常。

相关问题