Найти - Пользователи
Полная версия: GET запрос в Python
Начало » Python для новичков » GET запрос в Python
1
KsenZ
Имеется простенькая форма, и скрипт, который обрабатывает данные от этой формы.
Форма:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Форма</title>
</head>
<body>
<form action="cgi-bin/script.py" method="get">
    <table cellpadding="4">
        <tr>
            <td>Номер:</td>
            <td><input type="text" name="oid">
            </td>
        </tr>
    </table>
    <input type="submit">
</form>
</body>
</html>
Скрипт:
 #!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cgi
form = cgi.FieldStorage()
if "oid" not in form:
    print("<H1>Error</H1>")
else:
    print(form["oid"].value)

Т.е. когда скрипту передается GET запрос вида script.py?oid=123 скрипт, должен вывести значение oid, но этого не происходит. Вот, что показывает лог сервера (сервер запущен так: python3 -m http.server –cgi):
127.0.0.1 - - [07/Nov/2016 10:44:40] "GET /forma.html HTTP/1.1" 200 -
127.0.0.1 - - [07/Nov/2016 10:44:43] "GET /cgi-bin/script.py?oid=1234 HTTP/1.1" 200 -
127.0.0.1 - - [07/Nov/2016 10:44:43] command: "C:\Program Files\Python35\python.exe" -u C:\Users\...\...\cgi-bin\script.py
127.0.0.1 - - [07/Nov/2016 10:44:44] CGI script exited OK

Но при этом, я не получаю вывода “1234”.
Где у меня ошибка?
frombrest
Попробуй использовать метод:

 FieldStorage.getlist(name)

А вообще посмотри примеры которые напечатаны тут:

https://docs.python.org/3.5/library/cgi.html
scidam
Добавьте перед form:

 print("Content-Type: text/plain\n")

Тогда на ваш запрос “GET /cgi-bin/script.py?oid=1234 HTTP/1.1” будет возвращаться 1234.

Исполнимый ли script.py? Если нет, то:
 chmod +x script.py
KsenZ
scidam
Добавьте перед form:
Спасибо большое.
Дело было именно в этом.
Да script.py исполняемый.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB