Python 标准库包含一个模块cgi,其中包含许多对 CGI 脚本有用的实用程序。其中一个实用程序是FieldStorage解析sys.stdinHTTP POST 数据并提供 PHP 的类似物的类$_POST;你可以在帮助中阅读更多关于它的使用,我将给出一个获取文本值的简单示例:
import cgi
print('Content-Type: text/html; charset=utf-8')
print()
form = cgi.FieldStorage() # form — приблизительный аналог $_POST
# Проверка, есть ли data в форме вообще. Если нет, то предполагаем,
# что это GET-запрос, и отдаём HTML-код формы
if 'data' not in form:
print('''
<form action="" method="POST" enctype="multipart/form-data">
Введите какой-нибудь текст:<br/>
<input name="data" /><br/>
<input type="submit" value="Отправить" />
</form>
''')
# Проверка на непустое значение. getlist возвращает список всех
# data из формы; в нашей форме только один data и мы берём первый
# и единственный элемент из списка
elif form.getlist('data')[0]:
print('Вы ввели: <strong>{escaped_data}</strong>'.format(
# не забываем про уязвимости XSS; используем cgi.escape,
# чтобы экранировать HTML-спецсимволы и защититься
escaped_data=cgi.escape(form.getlist('data')[0], quote=True)
))
else:
print('Вы ничего не ввели')
在评论中,Igor Igoryanych 和我已经提到 CGI 不是很好,但如果你真的想使用它:
Python 标准库包含一个模块
cgi,其中包含许多对 CGI 脚本有用的实用程序。其中一个实用程序是FieldStorage解析sys.stdinHTTP POST 数据并提供 PHP 的类似物的类$_POST;你可以在帮助中阅读更多关于它的使用,我将给出一个获取文本值的简单示例:然而这样做很糟糕,最好使用 Flask (或立即 Sanic,感谢异步)