python3 验证 CGI.FieldStorage 中的元素
python3 validate elements in CGI.FieldStorage
CGI 脚本获取一些 GET 数据,例如
test.cgi?key1=val1&key2=val2
生成的 Fieldstorage 对象看起来像
FieldStorage(None, None, [MiniFieldStorage('key1', 'val1'), MiniFieldStorage('key2', 'val2')], MiniFieldStorage('key3', 'val3')])
我有如下所示的验证列表:
validate_list1 = ('a', 'b', 'c', 'd')
validate_list2 = ('w', 'x', 'y', 'z')
validate_list3 = ('m', 'n', 'o', 'p')
GET 参数可以最多 到 3 个键值对。
如果只返回一对键值对,我只需要检查validate_list1。如果 Key1 和 Key2 在 CGI 中,我想这样检查
val1 in validate_list1 AND val2 in validate_list2
以及 3 个 CGI 参数
val1 in validate_list1 AND val2 in validate_list2 AND val3 in validate_list3
如何根据关联的 validate_lists 评估来自 MiniFieldStorage 的 GET 值?
您可以使用 in
关键字测试参数是否在 GET 请求中:
keys = ('key1', 'key2', 'key3')
validate_lists = (('a', 'b', 'c', 'd'), ('w', 'x', 'y', 'z'), ('m', 'n', 'o', 'p'))
valid = True
for key, valid in keys, validate_lists:
if key in cgi.FieldStorage():
if not cgi.FieldStorage()[key].value in valid:
valid = False
CGI 脚本获取一些 GET 数据,例如
test.cgi?key1=val1&key2=val2
生成的 Fieldstorage 对象看起来像
FieldStorage(None, None, [MiniFieldStorage('key1', 'val1'), MiniFieldStorage('key2', 'val2')], MiniFieldStorage('key3', 'val3')])
我有如下所示的验证列表:
validate_list1 = ('a', 'b', 'c', 'd')
validate_list2 = ('w', 'x', 'y', 'z')
validate_list3 = ('m', 'n', 'o', 'p')
GET 参数可以最多 到 3 个键值对。
如果只返回一对键值对,我只需要检查validate_list1。如果 Key1 和 Key2 在 CGI 中,我想这样检查
val1 in validate_list1 AND val2 in validate_list2
以及 3 个 CGI 参数
val1 in validate_list1 AND val2 in validate_list2 AND val3 in validate_list3
如何根据关联的 validate_lists 评估来自 MiniFieldStorage 的 GET 值?
您可以使用 in
关键字测试参数是否在 GET 请求中:
keys = ('key1', 'key2', 'key3')
validate_lists = (('a', 'b', 'c', 'd'), ('w', 'x', 'y', 'z'), ('m', 'n', 'o', 'p'))
valid = True
for key, valid in keys, validate_lists:
if key in cgi.FieldStorage():
if not cgi.FieldStorage()[key].value in valid:
valid = False