postgresql - Flask SQLAlchemy 为 PostgreSQL 中的文本字段插入空值,尽管有文本
问题描述
该books()
方法中的命令基于已经有效的代码。INSERT INTO
声明就是问题所在。提交 HTML 表单(屏幕底部)userreview
时,尽管存在文本,但我的方法不会拉出输入字段中的文本框books()
并将其插入到我的 postgres DB 中。为了检查 HTML 页面中的任何内容是否被正确拉入,我测试了 hidden book_id
,它被该books()
方法拉出并按预期插入到数据库中。
知道为什么这会坚决拒绝将输入字段中的文本提取到我的方法中并将其插入到我的数据库中吗?
@app.route("/books", methods=["POST"])
@login_required
def books():
book_id = request.form.get("bookid")
review = request.form.get("userreview")
db.execute("INSERT INTO test (review, bookid) VALUES (:review, :bookid)", {"review": review, "bookid":book_id})
db.commit()
{% block body %}
<div>
<table class="table">
<thead>
<tr>
<th><strong>Username</strong></th>
<th><strong>Review</strong></th>
<th class="text-center"><strong>Rating</strong></th>
</tr>
</thead>
{% for review in reviews %}
<tr>
<td>{{ review.username }}</td>
<td>{{ review.reviews }}</td>
<td class="text-center">{{ review.rating }}</td>
</tr>
{% endfor %}
</table>
</div>
<form action="{{ url_for('books') }}", method="post">
<div class="form-group">
<input name="userreview" type="text" class="form-control" id="bookreview">
<input type="hidden" name="bookid" value="{{ books.id }}" />
</div>
<button type="button" class="btn btn-primary">Submit</button>
</form>
解决方案
这个 HTML 工作得很好,虽然我还没有弄清楚标记的哪一部分有所作为。我认为这是上面代码中的错误逗号<form action="{{ url_for('books') }}", method="post">
,但这没有什么区别。
<form action="{{ url_for('books') }}" method="post">
<fieldset>
<div class="form-group">
<input autocomplete="off" autofocus class="form control" name="userreview" type="text"/>
</div>
<div class="form-group">
<input autocomplete="off" autofocus class="form control" name="bookid" value="{{ books.id }}" type="hidden"/>
</div>
<div class="form-group">
<button class="btn btn-default" type="submit">Submit</button>
</div>
</fieldset>
</form>
推荐阅读
- powershell - 有没有办法使用 SharePoint/office 365 向用户发送带有附件的电子邮件?
- angular - 如何创建一个根据内容自动设置宽度的长方形离子按钮?
- javascript - 当数据值为空时,将标签显示为 N/A
- javascript - 出现错误错误:EACCES:权限被拒绝,取消链接“/usr/app/.next/BUILD_ID”
- c++ - cublasGemmEx 结果始终为零
- python - 在 Oracle 中使用以下划线开头的小写名称列时出现 SQLalchemy 数据库错误
- python - 如何在 BeautifulSoup 中获取没有特定标签的文本?
- java - Android 11 上 imageCapture 用例的 camerax“未绑定到有效相机”
- angular - 如何在Angular中的组件之间共享静态变量
- python - 当缩进完全正确时,为什么这个 Python 代码会给我一个关于缩进的错误