我正在尝试在我的Ubuntu VPS上托管一个Django应用程序.我安装了python,django和女服务员,目录移了过来.
我去了女服务员网站(http://docs.pylonsproject.org/projects/waitress/en/latest/)他们说要像这样使用它:
from waitress import serve
serve(wsgiapp, host='5.5.5.5', port=8080)
Run Code Online (Sandbox Code Playgroud)
我是否将我的应用名称替换为'wsiapp'?我是否需要在顶级Django项目目录中运行它?
abo*_*ron 13
用Django 1.9和Waitress 0.9.0测试
您可以waitress通过server.py在django项目根目录中创建脚本(例如)并从wsgi.py模块导入应用程序变量来使用django应用程序:
yourdjangoproject项目根结构
??? manage.py
??? server.py
??? yourdjangoproject
? ??? __init__.py
? ??? settings.py
? ??? urls.py
? ??? wsgi.py
Run Code Online (Sandbox Code Playgroud)
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()
Run Code Online (Sandbox Code Playgroud)
server.py
from waitress import serve
from yourdjangoproject.wsgi import application
if __name__ == '__main__':
serve(application, port='8000')
Run Code Online (Sandbox Code Playgroud)
用法
现在你可以跑了 $ python server.py
我设法通过使用 bash 脚本而不是 python 调用让它工作。我制作了一个名为“startserver.sh”的脚本,其中包含以下内容(显然将 yourprojectname 替换为您的项目名称):
#!/bin/bash
waitress-serve --port=80 yourprojectname.wsgi:application
Run Code Online (Sandbox Code Playgroud)
我把它放在顶级Django项目目录中。
更改了所有者执行的权限:
chmod 700 startserver.sh
Run Code Online (Sandbox Code Playgroud)
然后我只是在服务器上执行脚本:
sudo ./startserver.sh
Run Code Online (Sandbox Code Playgroud)
这似乎工作得很好。