如何在App Engine Python中处理HTML数组?

2 投票
1 回答
925 浏览
提问于 2025-04-16 01:51

我遇到了一个问题,我做了一个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)

撰写回答