【问题标题】:Getting error when running sql server query in Python在 Python 中运行 sql server 查询时出现错误
【发布时间】:2017-09-14 07:04:11
【问题描述】:

我正在使用 Python 的 Django 框架构建一个 Web 应用程序,DB 是 Sql server Azure,使用 Pyodbc。

我有一个无法解决的问题,我得到一个 parameter(file_name),它是一个字符串,当使用参数运行查询时,我在第一种情况下得到空结果,并且

  "sql = sql % tuple('?' * len(params))
            TypeError: not all arguments converted during string formatting"

在第二种情况下,我做错了什么?

file_name=request.POST.get('filetodelete')
    with connections['default'].cursor() as c:
       1st case
          parms=[file_name]
          sql='select *  from banks_row_data where file_name=%s'
          c.execute (sql,parms)
          test=c.fetchall()
      2nd case
          c.execute (sql,file_name)
          test=c.fetchall()

【问题讨论】:

  • 你为什么在 Django 中使用原始 SQL,尤其是对于这样一个微不足道的查询?

标签: python sql-server django azure pyodbc


【解决方案1】:

pyodbc 使用? 作为参数占位符,而不是%s

sql = 'select *  from banks_row_data where file_name = ?'

请注意,由于您使用的是 Django,因此您确实应该使用 Django 模型层来处理此类查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-03
    • 2020-05-09
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多