当通过 uwsgi 访问时,Crispy django 表单导致内部服务器错误
Crispy django forms results in internal server error when accessed via uwsgi
我在 django 中有一个简单的表单,我试图用 crispy forms 显示它。 Django Django-1.11.1,uwsgi 2.0.15,nginx 1.10.3-1,django-crispy-forms 1.6.1.
我已经安装了 django-crispy-forms (sudo pip3 install django-crispy-forms
) 并且我已经按照他们的文档进行了设置。
在settings.py:
[...]
INSTALLED_APPS = [
[...]
crispy_forms,
]
CRISPY_TEMPLATE_PACK='bootstrap3'
在我的模板中:
{% load crispy_forms_tags %}
[...]
<form action="{{ action }}" method="POST">
{% csrf_token %}
{% crispy form %}
<input type="submit" value="Submit">
</form>
形式:
class UploadForm(forms.Form):
f = forms.FileField(label="File")
comment = forms.CharField(max_length=255,strip=True,required=False)
现在,一旦我将 crispy_forms
添加到我的 INSTALLED_APPS,Web 应用程序就会显示 Internal Server Error
(通过 nginx 和 uwsgi)。
如果我直接通过 python3 manage.py runserver
运行 它,一切似乎都运行良好。
我是否错过了 uwsgi 配置中的一个步骤,或者我还能如何解决这个问题?
编辑: 发生这种情况时所有 uwsgi 日志为:
--- no python application found, check your startup logs for errors ---
[pid: 22173|app: -1|req: -1/1] 10.0.2.15 () {48 vars in 823 bytes} [Wed May 10 07:35:28 2017] GET / => generated 21 bytes in 0 msecs (
HTTP/1.1 500) 2 headers in 83 bytes (1 switches on core 0)
这是为每个请求记录的。老实说,我不知道 what/where 我的启动日志是什么。
edit2: 我已经按照 official quickstart 进行了设置:
[uwsgi]
chdir = /<dir>/<django_project>
module = <django_project>.wsgi
home = /<dir>/<virtualenv>
master = true
processes = 10
socket = /<dir>/<socket>.sock
vacuum = true
uid = 33 # www-data
edit3: 如果没有 crispy_forms
,应用程序 运行 可以通过 uWSGI 正常运行。在 INSTALLED_APPS
中有了它,我 运行 正在解决这些问题。
我猜这是 uWSGI 配置的问题。
edit4/SOLVED: 罪魁祸首是 home = /<dir>/<virtualenv>
,当我 运行 所有这些时它仍然在 uWSGI 配置文件中在虚拟环境中。删除 home
设置解决了我的问题。
罪魁祸首是 home = /<dir>/<virtualenv>
,当我 运行 所有这些都在 virtualenv 中时,它仍然在 uWSGI 配置文件中。
删除 home
设置解决了我的问题。
我在 django 中有一个简单的表单,我试图用 crispy forms 显示它。 Django Django-1.11.1,uwsgi 2.0.15,nginx 1.10.3-1,django-crispy-forms 1.6.1.
我已经安装了 django-crispy-forms (sudo pip3 install django-crispy-forms
) 并且我已经按照他们的文档进行了设置。
在settings.py:
[...]
INSTALLED_APPS = [
[...]
crispy_forms,
]
CRISPY_TEMPLATE_PACK='bootstrap3'
在我的模板中:
{% load crispy_forms_tags %}
[...]
<form action="{{ action }}" method="POST">
{% csrf_token %}
{% crispy form %}
<input type="submit" value="Submit">
</form>
形式:
class UploadForm(forms.Form):
f = forms.FileField(label="File")
comment = forms.CharField(max_length=255,strip=True,required=False)
现在,一旦我将 crispy_forms
添加到我的 INSTALLED_APPS,Web 应用程序就会显示 Internal Server Error
(通过 nginx 和 uwsgi)。
如果我直接通过 python3 manage.py runserver
运行 它,一切似乎都运行良好。
我是否错过了 uwsgi 配置中的一个步骤,或者我还能如何解决这个问题?
编辑: 发生这种情况时所有 uwsgi 日志为:
--- no python application found, check your startup logs for errors ---
[pid: 22173|app: -1|req: -1/1] 10.0.2.15 () {48 vars in 823 bytes} [Wed May 10 07:35:28 2017] GET / => generated 21 bytes in 0 msecs (
HTTP/1.1 500) 2 headers in 83 bytes (1 switches on core 0)
这是为每个请求记录的。老实说,我不知道 what/where 我的启动日志是什么。
edit2: 我已经按照 official quickstart 进行了设置:
[uwsgi]
chdir = /<dir>/<django_project>
module = <django_project>.wsgi
home = /<dir>/<virtualenv>
master = true
processes = 10
socket = /<dir>/<socket>.sock
vacuum = true
uid = 33 # www-data
edit3: 如果没有 crispy_forms
,应用程序 运行 可以通过 uWSGI 正常运行。在 INSTALLED_APPS
中有了它,我 运行 正在解决这些问题。
我猜这是 uWSGI 配置的问题。
edit4/SOLVED: 罪魁祸首是 home = /<dir>/<virtualenv>
,当我 运行 所有这些时它仍然在 uWSGI 配置文件中在虚拟环境中。删除 home
设置解决了我的问题。
罪魁祸首是 home = /<dir>/<virtualenv>
,当我 运行 所有这些都在 virtualenv 中时,它仍然在 uWSGI 配置文件中。
删除 home
设置解决了我的问题。