当前位置: 首页 > 知识库问答 >
问题:

flask sqlalchemy执行sql查询错误

龚志文
2023-03-14

你能帮我解决这个错误吗?

2017-08-05 18:54:18,421 INFOsqlalchemy.engine.base.Engine(4L,)2017-08-05 18:54:18,424 INFOsqlalchemy.engine.base.Engine COMMIT127.0.0.1--[05/Aug/2017 18:54:18]"GET/HTTP/1.1"200-127.0.0.1 - - [05/Aug/2017 18:54:19]"GET /static/img/markers_shadow.pngHTTP/1.1"404-127.0.0.1--[05/Aug/2017 18:54:19]"GET /static/fonts/glyphicons-halflings-regular.woff2HTTP/1.1"404-127.0.0.1--[05/Aug/2017 18:54:19]"GET /static/fonts/glyphicons-halflings-regular.woffHTTP/1.1"404-127.0.0.1-[05/Aug/2017 18:54:19]"GET /static/fonts/glyphicons-halflings-regular.ttfHTTP/1.1"404-[2017-08-05 18:54:23,162]应用程序中的错误:异常 /auth/search[GET]Traceback(最近的调用最后): File"/home/alaoui/Documents/ProjetHandy/venv-handy/lib/python2.7/site-包/flask/app.py",第1988行,wsgi_app响应=self.full_dispatch_request()File"/home/alaoui/Documents/ProjetHandy/venv-handy/lib/python2.7/site-包/flask/app.py",第1641行,full_dispatch_requestrv=self.handle_user_exception(e)File"/Home/alaoui/Documents/ProjetHandy/venv-handy/lib/python2.7/site-包/烧瓶/app.py",第1544行,handle_user_exception(exc_type,exc_value,tb)File"/home/alaoui/Documents/ProjetHandy/venv-handy/lib/python2.7/site-包/烧瓶/app.py",第1639行,full_dispatch_requestrv=self.dispatch_request()File"/home/alaoui/Documents/ProjetHandy/venv-handy/lib/python2.7/site-pack/flask/app.py",第1625行,dispatch_request返回self.view_functionsrule. endpoint File"/home/alaoui/Documents/ProjetHandy/handy_2/app/auth/view. py",第194行,在search_handymanhandyman=User.find_handymans(search_query)File"/home/alaoui/Documents/ProjetHandy/handy_2/app/模型. py",第88行,在find_handymanscursor=db.会期.执行(sql)File"/home/alaoui/Documents/ProjetHandy/venv-handy/lib/python2.7/site-包/sqlalChemy/orm/范围. py",第157行,在do返回getattr文件"/home/alaoui/Documents/ProjetHandy/venv-handy/lib/python2.7/site-包/sqlalChemy/orm/session. py",第1101行,在执行子句=表达式中。_literal_as_text(子句)文件"/home/alaoui/Documents/ProjetHandy/venv-handy/lib/python2.7/site-包/sqlalChemy/sql/elements. py",第4238行,在_literal_as_text“代替”%type(元素)ArgumentError: SQL表达式对象或字符串预期,得到类型的对象代替

model.py:

    @staticmethod
def find_users(query):
    search_job = str(query)

    sql ="""SELECT first_name,last_name, email, phone, image, diplome, latitude, longitude, description
    FROM users, jobs
    WHERE users.id_job = jobs.id
    AND jobs.description = %s
           """, [search_job]
    cursor = db.session.execute(sql )

    # Returns a list of product tuples
    return cursor.fetchall()

意见。py:

    @auth.route('/search' )
def search_user():
    search_query = request.args.get('query')
    users = User.find_users(search_query)

    return render_template("home/search_results.html",
                           query=search_query,
                           users=users)

家html:

 <form class="navbar-form navbar-left" action="{{url_for('auth.search_user') }}">
                        <div class="form-group">
                          <input type="text" class="form-control" name="query" placeholder="Search">
                          <input type="hidden" name="index" value="All">
                        </div>
                        <button type="submit" class="btn btn-default">Search</button>
                      </form>

这就是我用来执行这个请求的所有代码,你知道吗。非常感谢。

注:当我给一个值在我的模型字体它的工作。

乔布斯。description=%s-带有-

共有1个答案

毋胜涝
2023-03-14

这是我在models.py的解决方案,它的工作原理:)

@staticmethod
def find_handymans(query):
    search_job = str(query)

    sql_query =text("SELECT first_name,last_name, email, user_type,  phone, image, diplome, latitude, longitude, description FROM users, jobs WHERE users.id_job = jobs.id AND jobs.description = :x ")
    cursor = db.session.execute(sql_query,{'x' : search_job})

    # Returns a list of product tuples
    return cursor.fetchall()
 类似资料:
  • Query 也可以直接执行一个SQL查询,即Select命令。在Postgres中支持原始SQL语句中使用 ` 和 ? 符号。 sql := "select * from userinfo" results, err := engine.Query(sql) 当调用 Query 时,第一个返回值 results 为 []map[string][]byte 的形式。 Query 的参数也允许传

  • 问题内容: 所涉及的rdms是oracle错误是 我想用这个查询做的是: 阈值表包含列阈值类型,其中包含现金交易表的列名称 对于阈值表中的每个记录,我们需要根据现金交易表中的阈值类型来比较总和(金额)组。 并将获取的数量与阈值表的threshold_amount比较 我需要选择threshold_id 阈值表: 现金交易表: 期望的输出: 让我们进行第一个提取:阈值表中的第一个记录 1.现在thr

  • 大家好,我在joomla 2.5中为后端做了一个组件,但是我在执行sql查询时遇到了问题,我的变量是空的,所以它不会显示任何内容。 我有其他的文件和文件,但这里对我的问题很重要。 首先在我的controller.php我有这个内部管理文件 在我的模型文件我有restaurante.php 在我的控制器文件里我有这个 最后,在我的视图文件中,我有一个默认的tmpl文件。显示表格的php 但是元素re

  • 当我试图执行这个存储过程时,我收到了一个错误:“数据库连接器错误:'不允许从数据类型'CHAR'隐式转换为'INT'。使用CONVERT函数运行这个查询“为什么?”?我该怎么解决这个问题?谢谢 这是im用来执行SP的查询: 该列被设置为char(4),因此我不认为查询和数据类型不匹配 顺便说一句,我试过使用单引号、双引号和不使用引号的(“7066”),但仍然得到相同的sql错误。请帮忙 PS我在用

  • 18/04/25 11:58:34 INFO sparkcontext:Created broadcast 0 from Traceback(最近的调用为last):文件“/users/xxxxx/scripts/hive/hive.py”,第12行,在spark.sql(“select*from pokes”).show()文件“/usr/local/cellar/apache-spark/2.

  • 问题内容: 我有5个单独的SQL查询,这些查询按顺序在控制器操作中执行。这是我用来执行它们的方法: 因此,基本上我有五个连续的查询,这些查询必须按顺序执行,并且代码必须在它们下面继续执行。有没有更好的方法可以从控制器操作内部执行查询?我不确定使用当前方法进行错误处理的最佳方法。 谢谢! 问题答案: 首先看在控制器和数据库之间创建一个抽象层。存储库就是一个例子,它会在您进行测试时提供帮助。您可以创建