如何使用PHP方法在Python中处理复杂的输入表单?

时间:2017-12-09 12:15:11

标签: php python python-2.7

我有以下HTML表单,其中包含几个复杂的输入元素:

<input type="text" name="images[1]">
<input type="text" name="images[2]">
<input type="text" name="video[1]">
<input type="text" name="video[2]">

当我谈到复杂的输入时,我的意思是复杂的元素名称:

name="images[1]"

其中images表示输入组和[1]数字或输入标识符。

使用PHP处理表单的方法可以实现如下:

if(isset($_POST['images'])) {
    foreach($_POST['images'] as $index) { // $key
         echo $_POST['images'][$index]; // or key
    }
}

如何在Python中重现这一点?

2 个答案:

答案 0 :(得分:2)

这取决于你是否使用python框架(django,Flask,...)。 如果您使用的是框架,则必须阅读其文档。例如,使用django,您可以通过request.POST ['images']处理表单元素。

您可以阅读How are POST and GET variables handled in Python?

答案 1 :(得分:0)

使用HTMLParser很容易。

看看这个例子。

from HTMLParser import HTMLParser
from htmlentitydefs import name2codepoint

class MyHTMLParser(HTMLParser):
    def handle_starttag(self, tag, attrs):
        print "Start tag:", tag
        for attr in attrs:
            print "     attr:", attr

    def handle_endtag(self, tag):
        print "End tag  :", tag

    def handle_data(self, data):
        print "Data     :", data

    def handle_comment(self, data):
        print "Comment  :", data

    def handle_entityref(self, name):
        c = unichr(name2codepoint[name])
        print "Named ent:", c

    def handle_decl(self, data):
        print "Decl     :", data

parser = MyHTMLParser()

parser.feed('<input type="text" name="images[1]">')

比你有

python a1.py
Start tag: input
     attr: ('type', 'text')
     attr: ('name', 'images[1]')