HTML-формы не работают с Python - PullRequest
       23

HTML-формы не работают с Python

0 голосов
/ 21 августа 2009

Я создал страницу HTML с формами, которая берет имя и пароль и передает их скрипту Python, который должен напечатать имя человека с приветственным сообщением. Тем не менее, после того, как я POST значения, я просто получаю код Python, отображаемый в браузере, а не приветственное сообщение. Я сохранил html-файл и python-файл в папке cgi-bin под Apache 2.2. Если я просто запускаю простой скрипт Python hello world в браузере, отображается сообщение «Hello World». Я использую WinXP, Python 2.5, Apache 2.2. код, который я пытаюсь запустить, выглядит следующим образом:

#!c:\python25\python.exe
import cgi
import cgitb; cgitb.enable()
form = cgi.FieldStorage()
reshtml = """Content-Type: text/html\n
<html>
 <head><title>Security Precaution</title></head>
 <body>
 """

print reshtml 

User = form['UserName'].value
Pass = form['PassWord'].value

if User == 'Gold' and Pass == 'finger':
    print '<big><big>Welcome'
    print 'mr. Goldfinger !</big></big><br>'
    print '<br>'
else:
    print 'Sorry, incorrect user name or password' 
    print '</body>'
print '</html>'

Ответ на это может быть очень очевидным, но он полностью ускользает от меня. Я очень плохо знаком с Python, поэтому любая помощь будет принята с благодарностью.

Спасибо.

Ответы [ 2 ]

1 голос
/ 21 августа 2009

Это

Я только что получил код Python отображается в браузере

звучит так, как будто обработка CGI в Apache и Python настроена неправильно.

Вы можете сузить контрольный пример, передавая UserName и PassWord в качестве параметров GET:

http://example.com/cgi-bin/my-script.py?UserName=Foo&PassWord=bar

Что произойдет, если вы сделаете это?

0 голосов
/ 21 августа 2009

Возможно, вам придется извлечь значения полей, как это

User = form.getfirst('UserName')
Pass = form.getfirst('PassWord')

Я знаю, это странно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...