围绕uWSGI的工作原理(我正在使用它与Django),我只是不明白。Django - mysite.wsgi - 文件不存在,但uWSGI的作品。怎么样?
我有以下的测试Django项目:
(uwsgi-tutorial)[[email protected] mysite]# tree
.
|-- db.sqlite3
|-- manage.py
|-- mysite
| |-- __init__.py
| |-- __pycache__
| | |-- __init__.cpython-34.pyc
| | |-- settings.cpython-34.pyc
| | |-- urls.cpython-34.pyc
| | `-- wsgi.cpython-34.pyc
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- test.py
在此文件夹我跑uwsgi --http :8000 --module mysite.wsgi
和它的作品。
怎么样?
我的意思是,没有这样的文件mysite.wsgi。但有mysite/wsgi.py。现在如果我运行uwsgi --http :8000 --module mysite/wsgi.py
,它不起作用(HTTP 500)。
如果我改变mysite.wsgi到别的然后uWSGI是无法加载模块,所以它看起来像模块名称必须Django项目名称一致,您必须添加.wsgi启用“魔力” 。
大部分uWSGI + Django的指导,包括官方Django 1.8 documentation 这样说:
模块:该模块WSGI使用 - 可能的mysite.wsgi模块startproject命令创建
或
模块mysite.wsgi:加载指定的WSGI模块
我不明白它是如何工作以及为什么是这样工作的。谁能解释一下? :) 提前致谢!
WSGI是一个Python标准。 uWSGI是随后扩展到其他语言的该标准的实现。 –