CGI - HTML для Python - PullRequest
       5

CGI - HTML для Python

0 голосов
/ 24 декабря 2018

Я следую инструкциям CGI , когда я пытаюсь выполнить программу

#!C:/Python27/python.exe
# Import modules for CGI handling 
import cgi, cgitb 

# Create instance of FieldStorage 
form = cgi.FieldStorage() 

# Get data from fields
first_name = form.getvalue('first_name')
last_name  = form.getvalue('last_name')

print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Hello - Second CGI Program</title>"
print "</head>"
print "<body>"
print "<h2>Hello %s %s</h2>" % (first_name, last_name)
print "</body>"
print "</html>"

Файл HTML

<form action = "/cgi-bin/hello_get.py" method = "get">
First Name: <input type = "text" name = "first_name">  <br />

Last Name: <input type = "text" name = "last_name" />
<input type = "submit" value = "Submit" />
</form>

В моем браузере при отправкезначения, мой файл Python отображается как есть.В чистом виде мой код был показан браузером.Даже он не получил имя и фамилию.В чем проблема?

Я не могу найти, где я делаю ошибку.

1 Ответ

0 голосов
/ 24 декабря 2018

Если я правильно понимаю, вы говорите, что веб-сервер отображает исходный код вашей программы на Python вместо выполнения исходного кода.Судя по вашей спецификации shebang, вы работаете под Windows.В зависимости от того, какой веб-сервер вы используете, например, IIS или Apache, вам необходимо настроить веб-сервер таким образом, чтобы он знал, что файлы с расширениями .py должны выполняться интерпретатором Python, поскольку он явно игнорирует спецификацию shebang.Например, если вы используете Apache, ваш файл конфигурации httpd может содержать следующие строки:

AddHandler cgi-script .py
ScriptInterpreterSource Registry-Strict

Во второй строке веб-сервер игнорирует shebang и использует любую программу, связанную с типом файла .py, которыйдолжен быть вашим интерпретатором Python.Это, вероятно, то, что вы хотите, так как вы можете обновлять свой переводчик и менять его местоположение.В этом случае вы, вероятно, должны кодировать шебанг как:

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