如何在App Engine Python中处理HTML数组?
我遇到了一个问题,我做了一个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 %}
这是我目前尝试读取HTML数组的方式:
newHashTags = self.request.get('hashtags[]')
for newHashTag in newHashTags:
stream.hashtags.append(newHashTag)
这是我在调试时看到的post变量。
MultiDict: MultiDict([('streamid', '84'), ('name', 'Akteurs'), ('description', '#stream'), ('hashtags[]', '#andretest'), ('hashtags[]', '#saab')])
1 个回答
5
你不需要在想要当作列表或数组的字段名称后面加上[]
,这只是PHP的一种特定用法。你只需要把字段命名为hashtags
,然后在处理请求的地方这样做,就能从请求中获取一系列的标签:
newHashTags = self.request.get('hashtags', allow_multiple=True)
这里的allow_multiple=True
参数会让get
方法返回请求中所有hashtags
的值,想了解更多信息可以查看相关文档。
你也可以通过这样做来避免使用for
循环:
newHashTags = self.request.get('hashtags', allow_multiple=True)
stream.hashtags.extend(newHashTags)