如何使用App Engine Python处理HTML数组?

Sam*_*nga 2 html python google-app-engine

我遇到了这个问题,我制作了一个HTML数组,但我无法用Python读出来.甚至可以在App Engine中执行此操作吗?我在PHP中读到它是可能的.

这是html代码:

<label for="hashtags">Hashtags: </label><br/>
{% for hashtag in stream.hashtags %}
    <input type="text" value="{{hashtag}}" name="hashtags[]" id="hashtags" class="text ui-widget-content ui-corner-all" />
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

这就是我目前正在尝试阅读HTML数组的方法:

newHashTags = self.request.get('hashtags[]')
for newHashTag in newHashTags:
    stream.hashtags.append(newHashTag)
Run Code Online (Sandbox Code Playgroud)

当我调试时,这是在post变量中.

MultiDict: MultiDict([('streamid', '84'), ('name', 'Akteurs'), ('description', '#stream'), ('hashtags[]', '#andretest'), ('hashtags[]', '#saab')])
Run Code Online (Sandbox Code Playgroud)

Wil*_*hen 5

您不需要将[]要作为列表或数组处理的字段名称的末尾包含在内,这是特定于PHP的魔法.相反,只需为该字段命名,hashtags并在您的请求处理程序中执行此操作以从请求中获取主题标签列表:

newHashTags = self.request.get('hashtags', allow_multiple=True)
Run Code Online (Sandbox Code Playgroud)

allow_multiple=True参数将使get方法返回所有的列表hashtags中的要求值.有关详细信息,请参阅相关文档.

你也可以for通过做这样的事情来避免循环:

newHashTags = self.request.get('hashtags', allow_multiple=True)
stream.hashtags.extend(newHashTags)
Run Code Online (Sandbox Code Playgroud)