【发布时间】:2018-12-14 19:04:08
【问题描述】:
我正在尝试制作一个具有搜索 postgres 表的搜索按钮的网络应用程序。
我收到了错误:
TypeError: 'dict' 对象不支持索引
我的代码如下:
app.py
from flask import Flask, render_template, request
from sqlalchemy import create_engine
app = Flask(__name__)
db_string = "postgres://xi:x@x:5432/xx"
db = create_engine(db_string)
@app.route('/', methods=['GET', 'POST'])
def homepage():
if request.method == 'POST':
jn = request.form['jobnumber']
result_set = db.execute("SELECT cost FROM public.options where optionno = (f'%jn%')").fetchall()
return render_template('main.html', test=result_set, jn=jn)
else:
return render_template('main.html')
if __name__ == "__main__":
app.run(debug=True)
我的 HTML 是:
main.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>xxx</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
</head>
<body>
<p>xxx</p>
<form method="POST" id="jobnumber">
<input name="jobnumber" type="textbox" placeholder="jobnumber">
</form>
<table>
<td>
{{test}}
</td>
</table>
</body>
</html>
任何帮助将不胜感激。
【问题讨论】:
-
绝对不能使用字符串插值来形成 SQL 查询。
标签: python sqlalchemy