Я новичок в колбе. Я пытаюсь отсортировать строки в моей БД в соответствии с выбранным параметром в форме. Проблема в том, что я получаю пустой список вместо списка кортежей с данными строк в нем. Хотя и почтовый запрос, и моя БД не пусты, и мой SQL-запрос работает с моей текущей БД в sqlitebrowser.
rout.py:
@bp.route('/poll-process', methods=['POST', 'GET'])
def process():
form = ChoiceForm(request.form)
if request.method == 'POST':
select = request.form.get('sel')
if select:
print(select)
db = get_db()
res = db.execute(
'''SELECT username, sex, city, emotion, month, poll_time
FROM poll
JOIN author
ON poll.author_id = author.id
ORDER BY sex ASC''', (select)
).fetchall()
print(res)
db.close
return render_template('process.html', form=form)
shema.sql:
DROP TABLE IF EXISTS author;
DROP TABLE IF EXISTS poll;
CREATE TABLE `author` (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`username` TEXT NOT NULL,
`sex` TEXT NOT NULL
);
CREATE TABLE `poll` (
`poll_id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`city` TEXT NOT NULL,
`emotion` TEXT NOT NULL,
`month` TEXT NOT NULL,
`poll_time` TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
`author_id` INTEGER,
FOREIGN KEY(`author_id`) REFERENCES `author`
);
process.html:
<form method="post">
<!-- select -->
<div class="form-group mt-4">
<h2>Choose criteria to sort</h2>
<select class="custom-select" name="sel">
{% for field in form.sel %}
<option>{{ field }}</option>
{% endfor %}
</select>
...
{{form.submit(class="btn btn-primary")}}
</form>
Вот мой вывод:
* Serving Flask app "flaskapp" (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 231-471-963
poll_time
[]
127.0.0.1 - - [30/Oct/2019 21:16:59] "POST /poll-process HTTP/1.1" 200 -
Заранее спасибо!