Отправка формы на сервер Django действительно медленная - PullRequest
1 голос
/ 25 июля 2010

У меня есть веб-страница, которая выглядит следующим образом:

<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>
""")

Ответы [ 2 ]

0 голосов
/ 06 марта 2011

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

0 голосов
/ 26 июля 2010

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

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

КСТАТИ код вашего взгляда странный.

...