为什么POST请求会在django中使用wsgi转换为GET?

时间:2016-04-13 13:22:30

标签: django mod-wsgi

我有一个Django 1.9.4站点。

在localhost中,我可以轻松提交表单并获得我想要的结果。

但是当它在服务器上时,POST请求变成了GET请求。

在本地,我使用python manage.py runserver但在服务器上我使用Apache2,WSGI

本地:

  • django 1.9.4
  • python 2.7.10
  • Ubuntu 15.10

服务器:

  • 相同的django
  • python 2.7.6
  • 服务器版本:Apache / 2.4.7(Ubuntu)
  • Ubuntu 14.04

服务器example.com.conf

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin email@gmail.com
    Alias /static /var/www/example.com/static
    <Directory /var/www/example.com/static>
        Require all granted
    </Directory>
    Alias /media /var/www/example.com/media
    <Directory /var/www/example.com/media>
        Require all granted
    </Directory>
    <Directory /var/www/example.com/wh>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
    WSGIDaemonProcess webhistory python-path=/var/www/example.com:/var/www/example.com/env/lib/python2.7/site-packages
    WSGIProcessGroup webhistory
    WSGIScriptAlias / /var/www/example.com/wh/wsgi.py
    ErrorLog /var/www/example.com/logs/error.log 
    CustomLog /var/www/example.com/logs/access.log combined
    Alias /robots.txt /var/www/example.com/robots.txt
    Alias /favicon.ico /var/www/example.com/favicon.ico
</VirtualHost>

wsgi.py

import os

from django.core.wsgi import get_wsgi_application

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

application = get_wsgi_application()

最疯狂的部分是即使我的admin应用也无法正常运行。 所有POST提交的表单都变成了GET表单。

这是错误:

request <WSGIRequest: GET '/someurl/'>

有什么问题?

是否与APPEND_SLASH = True相关?

这就是真正困扰我的东西......表单提交工作一次!为什么不再工作?

0 个答案:

没有答案