0
我有一個接受任意數量的書籍及其作者的HTML表單。我試圖將相應的書籍和作者分組,以便在用戶提交表單時可以輕鬆地解析服務器。我嘗試使用HTML字段集,但我不確定這是否是正確的方法。在Flask中分組HTML輸入字段
當我提交表單到服務器有中沒有字段集的概念瓶的request.form
這裏的HTML表單:
<form action="/save/" method="POST">
<fieldset>
<input name="author" value="Mark Twain" class="author" type="text">
<input name="book" value="The Adventures of Tom Sawyer" class="book" type="text">
</fieldset>
<fieldset>
<input name="author" value="Henry David Thoreau" class="author" type="text">
<input name="book" value="Civil Disobedience" class="book" type="text">
</fieldset>
<!--More books and authors here possibly-->
<button type="submit">Save</button>
</form>
這裏就是我的服務器上看到當我登錄request.form
:
ImmutableMultiDict([('book', u'The Adventures of Tom Sawyer'), ('book', u'Civil Disobedience'), ('author', u'Mark Twain'), ('author', u'Henry David Thoreau')])
你可以看到,服務器接收數據沒有任何形式的字段集或分組的概念。
有沒有更好的方法來分組個別書籍及其相應的作者?我寧願在HTML中完成所有這些工作,而不是涉及jQuery/JSON/AJAX。
對於我如何維護服務器看到的圖書順序,您有什麼建議嗎?我可以使用您建議的方法,但是當我登錄request.form時,書籍/作者的順序不會被維護。 – Raj
你不能。數據存儲在MultiDict中,並像所有不保存順序的字典一樣。無論如何依靠現場訂單並不是一個好主意。 – ThiefMaster
其實@Raj有可能保存順序,你只需要使用['ImmutableOrderedMultiDict'](http://werkzeug.pocoo.org/docs/datastructures/#werkzeug.datastructures.ImmutableOrderedMultiDict)作爲你的後備存儲['request_class'](http://flask.pocoo.org/docs/api/#flask.Flask.request_class)。有關更多詳細信息,請參見[此答案](http://stackoverflow.com/a/18189963/135978) –