python3从零学习-5.10.2、cgi—通用网关接口

 

概述

 

HTTP服务器调用CGI脚本,通常用于处理通过HTML <FORM>或<ISINDEX>元素提交的用户输入。

 

通常,CGI脚本存在于服务器的特殊CGI -bin目录中。HTTP服务器将关于请求的各种信息

放在脚本的shell环境中,执行脚本,并将脚本的输出发送回客户机。

 

脚本的输入也连接到客户端,有时表单数据也是这样读取的;其他时候,表单数据通过URL的“查询字符串”部分传递。此模块旨在处理不同的情况,并为Python脚本提供更简单的接口。它还提供了许多帮助调试脚本的实用程序,最新增加的功能是支持表单的文件上传(如果浏览器支持的话)。

使用cgi模块

 

如果您想要更多的控制,或者想在其他情况下使用本模块中实现的一些算法,那么这些方法非常有用。

 

  • cgi.parse(fp=None, environ=os.environ, keep_blank_values=False, strict_parsing=False)

在环境中或从文件(文件默认为sys.stdin)解析查询。将keep_blank_values和strict_parsing参数传递给urllib. parser .parse_qs()。

 

  • cgi.parse_qs(qs, keep_blank_values=False, strict_parsing=False)

此函数在此模块中不赞成使用。使用urllib.parse.parse_qs ()。这里只维护向后兼容性。

 

  • cgi.parse_qsl(qs, keep_blank_values=False, strict_parsing=False)

此函数在此模块中不赞成使用。使用urllib.parse.parse_qsl ()。这里只维护向后兼容性。

 

  • cgi.parse_multipart(fp, pdict)

解析multipart/form-data类型的输入(用于文件上传)。参数为输入文件的fp,为内容类型头文件中包含其他参数的字典的pdict。

 

parse_qs()键是字段名,每个值是该字段的值列表。这很容易使用,但如果您希望上传兆字节的数据,那么就不是很好了——在这种情况下,使用FieldStorage类来代替,它更加灵活。

 

注意,这不会解析嵌套的多部分部分—为此使用FieldStorage。

 

  • cgi.parse_header(string)

将MIME头(例如内容类型)解析为主值和参数字典。

 

  • cgi.test()

健壮的CGI测试脚本,可用作主程序。写最小的HTTP头和格式提供给脚本的所有信息的HTML形式。

 

  • cgi.print_environ()

用HTML格式化shell环境。

 

  • cgi.print_form(form)

用HTML格式化表单。

 

  • cgi.print_directory()

格式化当前目录在HTML。

 

  • cgi.print_environ_usage()

在HTML中打印有用的(CGI使用的)环境变量列表。

 

  • cgi.escape(s, quote=False)

将字符串s中的字符'&'、'<'和'>'转换为html安全的序列。如果需要在HTML中显示可能包含这些字符的文本,请使用此选项。如果可选标志引号为真,引号字符(")也会被翻译;这有助于包含在由双引号分隔的HTML属性值中,如<a href="…">中。注意,单引号从不被翻译。