我正在尝试在我的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项目目录中运行它?
答案 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
这似乎工作正常。