【发布时间】:2018-05-16 13:18:36
【问题描述】:
我试图在一列中存储 2 个值,但我什至不知道这是否可能。
看起来是这样的。我从 HTML 表单中获取数据,如下所示。它有效。
<form action="{{url_for('newBook')}}" method = 'POST'>
<p>Choose Language</p>
<select name=language method="GET" action="/" size="2" multiple>
{% for language in languages %}
<option value= "{{language}}" SELECTED>{{ language }}</option>"
{% endfor %}
</select>
<p><input type='submit' value='Create'></p>
<a href = "{{url_for('showBooks') }}">Cancel</a>
</form>
但它只在数据库中存储了一个值。
class Book(Base):
__tablename__ = 'Book'
language = Column(String(30)) # how change that?
这就是我得到这个值的方式。
languages = ['Polish', 'English']
@app.route('/books/new/', methods=['GET', 'POST'])
def newBook():
if request.method == 'POST':
newBook = Book(language = request.form['language']) # how change that?
session.add(newBook)
session.commit()
flash("New Book Added!")
return redirect(url_for('showBooks'))
else:
return render_template('newBook.html', languages=languages)
该代码有效,但我只得到英语或波兰语值。但我希望我有时可以存储两个值。我知道可以使用 request.form.getlist 但我没有找到一个工作示例以及如何将其存储在数据库中。
【问题讨论】:
-
newBook = request.form.getlist('language')。这将返回所有值的列表
标签: python html database flask sqlalchemy