2010-07-25 5 views
1

У меня есть веб-страницу, которая выглядит как:Отправка формы в Django сервера очень медленно

<html> 
    <head> 
    <title>Hi</title> 
    </head> 
    <body> 
    <form name="mainForm" method="post" action=""> 
     <p> 
     <input type="checkbox" name="PLD"> 
     <input type="submit" value="Submit"> 
     </p> 
    </form> 
    </body> 
</html> 

Если флажок не установлен, форма представления работает как в FF и IE. Однако, если флажок установлен, для ответа в браузере требуется около двух минут! В Chrome представление формы работает, даже если флажок установлен.

Я никогда раньше не видел такой проблемы, поэтому я думаю, что проблема связана с моим сервером Django (он работает через Apache 2.2.9-10 на Debian Linux). В моем журнале Apache я иногда вижу такие ошибки, как:

[Sun Jul 25 17:45:05 2010] [error] [client X.X.X.X] mod_wsgi (pid=30418): Exception occurred processing WSGI script '/X/django.wsgi'., referer: X 
[Sun Jul 25 18:45:06 2010] [error] [client X.X.X.X] Traceback (most recent call last):, referer: X 
[Sun Jul 25 18:45:06 2010] [error] [client X.X.X.X] File "/var/lib/python-support/python2.5/django/core/handlers/wsgi.py", line 231, in __call__, referer: X 
[Sun Jul 25 18:45:06 2010] [error] [client X.X.X.X]  set_script_prefix(base.get_script_name(environ)), referer: X 
[Sun Jul 25 18:45:06 2010] [error] [client X.X.X.X] File "/var/lib/python-support/python2.5/django/core/handlers/base.py", line 199, in get_script_name, referer: X 
[Sun Jul 25 18:45:06 2010] [error] [client X.X.X.X]  return force_unicode(environ.get('SCRIPT_NAME', u'')), referer: X 
[Sun Jul 25 18:45:06 2010] [error] [client X.X.X.X] File "/var/lib/python-support/python2.5/django/utils/encoding.py", line 68, in force_unicode, referer: X 
[Sun Jul 25 18:45:06 2010] [error] [client X.X.X.X]  s = s.decode(encoding, errors), referer: X 
[Sun Jul 25 18:45:06 2010] [error] [client X.X.X.X] LookupError: no codec search functions registered: can't find encoding, referer: X 

Эта ошибка не всегда происходит. Я искал вокруг, но я не знаю, что это значит.

Я попытался использовать DOCTYPE для веб-страницы и использовать тег META для установки кодировки типа контента как utf-8 или iso-8859-1. Ничто из этого не помогло.

Кто-нибудь знает, что здесь происходит? Благодаря!

код Django выглядит следующим образом:

def page(request): 
    return HttpResponse(""" 
<html> 
    <head> 
    <title>Hi</title> 
    </head> 
    <body> 
    <form name="mainForm" method="post" action=""> 
     <p> 
     <input type="checkbox" name="PLD"> 
     <input type="submit" value="Submit"> 
     </p> 
    </form> 
    </body> 
</html> 
""") 
+1

Какая у вас ОС и версия Apache? Можете ли вы вставить код представления? –

+0

Apache 2.2.9-10 на Debian Linux ... спасибо, я просто добавил это. Позвольте мне посмотреть, могу ли я перевести код представления в нечто простое. – iloveponies

ответ

0

Кстати, для тех, кто волнует, я решил эту проблему, создав скрытое поле большой длины (несколько килобайт в длину) внутри формы. Я понятия не имею, почему это исправлено.

0

Я не могу даже изображение причиной аномально медленные ответы, но исправление ошибок кодирования легко. По умолчанию Apache не запускается с юникодом по умолчанию в debian. Написать следующую строку в файл Apache envvars (от django wiki):

export LANG='en_US.UTF-8' 
export LC_ALL='en_US.UTF-8' 

BTW ваш взгляд код странно.

+0

Я ценю это. Но это, похоже, не решает проблему. У вас есть хороший момент - позвольте мне попытаться закодировать это представление как шаблон и посмотреть, сохраняется ли ошибка. – iloveponies

Смежные вопросы