Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Jinja烧瓶模板SQLAlchemy显示多个结果_Python_Sql_Sqlalchemy - Fatal编程技术网

Python Jinja烧瓶模板SQLAlchemy显示多个结果

Python Jinja烧瓶模板SQLAlchemy显示多个结果,python,sql,sqlalchemy,Python,Sql,Sqlalchemy,我试图创建一个简单的搜索工具,使用Flask、Jinja和SQLAlchemy搜索现有的Postgres表。 一切正常,除了搜索时,页面上显示的结果如下所示: 请注意,我圈出的那一位是,如果我只使用Postgres/pgadmin进行相同的搜索,将显示的内容。它返回多个随机结果。 以下是使用Pgadmin将返回的内容: 有什么想法吗?我的代码如下 App.py Main.html xxx xxx 结果 {{result_set}} 如何使其仅显示与PGAdmin将显示的内容相同?您似乎正

我试图创建一个简单的搜索工具,使用Flask、Jinja和SQLAlchemy搜索现有的Postgres表。 一切正常,除了搜索时,页面上显示的结果如下所示:

请注意,我圈出的那一位是,如果我只使用Postgres/pgadmin进行相同的搜索,将显示的内容。它返回多个随机结果。 以下是使用Pgadmin将返回的内容:

有什么想法吗?我的代码如下

App.py

Main.html


xxx
xxx

结果 {{result_set}}


如何使其仅显示与PGAdmin将显示的内容相同?

您似乎正在使用flask中的
%
s进行搜索,而PGAdmin中没有它们。如果两个查询都需要相同的结果,请使用相同的查询


%
括起搜索字符串向SQL引擎表明您希望包含搜索字符串的值。不仅仅是一个精确匹配。

谢谢@fayaz,我会在我有能力的时候将其标记为答案,我的结果现在显示正常,但它显示[(2876.0,)我如何让它只显示2876而不显示[(,)@keyring88结果集作为的返回给您。您可以使用SQLAlchemy
.scalar()
方法将它们去掉,因为您已经知道应该只有一个结果。要删除小数点,我想可以将结果转换为int。如果您想要简单的相等,请不要使用LIKE。
from flask import Flask, render_template, request
from sqlalchemy import create_engine
from sqlalchemy import text
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']='xxx://xxx:xxx@xxx:xxx/xxx'
engine = create_engine('postgresql+psycopg2://xxx:xxx@xxxr:xxx/xxx')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db=SQLAlchemy(app)

@app.route('/', methods=['GET', 'POST'])
def homepage():
    if request.method == 'POST':
        jn = request.form['jobnumber']
        rp = db.session.execute(text("SELECT cost FROM public.options where cast(optionno AS VARCHAR) like :jn"), {"jn": f"%{jn}%"})
        result_set = rp.fetchall()
        return render_template('main.html', result_set=result_set, jn=jn)
    else:
        return render_template('main.html')

    if __name__ == "__main__":
        app.run(debug=True)
<!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="text"  placeholder="jobnumber">
</form>

<table> 

<td>
<h1> Results</h1>
       <p>{{result_set}}</p>

</td>


</table>

</body>
</html>