为什么cgi.FieldStorage的前两个参数为None?

时间:2016-06-10 09:33:02

标签: python python-3.x cgi

在Python CGI环境中,我使用以下代码从GET / POST请求中打印值:

import cgi
print(cgi.FieldStorage())

输出结果为:

FieldStorage(None, None, [MiniFieldStorage('name', 'john')])

在这里,我提供了name参数,其值为'john',我按预期得到了它。

但为什么前两个值为None?他们使用了什么,他们持有什么?

1 个答案:

答案 0 :(得分:0)

根据Tsk.mapError模块的来源,FieldStorage.__repr__方法是:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
</urlset>

<url>
<loc>http://www.yoururl.com/</loc>
<lastmod>2015-03-18T18:14:04+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>1.00</priority>
</url>

<url>
<loc>http://www.yoururl.com/</loc>
<lastmod>2015-03-18T18:14:04+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.80</priority>
</url>

<url>
<loc>http://www.yoururl.com/</loc>
<lastmod>2015-03-18T18:14:04+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.80</priority>
</url>

<url>
<loc>http://www.yoururl.com/</loc>
<lastmod>2015-03-18T18:14:04+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.80</priority>
</url>

cgi.pydef __repr__(self): """Return a printable representation.""" return "FieldStorage(%r, %r, %r)" % ( self.name, self.filename, self.value) 都是可选值。对于name,会自动从filename标头设置,如果有的话。

在使用FieldStoragecontent-dispositionname风格的方法时,

FieldStorage似乎被用作此dict的关键。

keys由接受文件上传的CGI脚本使用。

如果您获得__getitem__(“在没有文件上传的情况下使用”),那么__repr__就是:

filename

与上述相同,减去MiniFieldStorage字段。与def __repr__(self): """Return printable representation.""" return "MiniFieldStorage(%r, %r)" % (self.name, self.value) 不同,它在filename中取FieldStorage的值,除了在name中重复之外没有任何作用。 (它可能也被用作字典键......某处。)

坦率地说,这两个类的文档字符串比你在cgi module's official docs中找到的要好得多。 (此外,__init__类会执行不同内容的批次,因此难以用文字描述。)