如何在 SQLAlchemy 中使用通配符? [复制]

2024-01-30

我正在尝试使用 SQLAlchemy 对查询使用通配符,但我得到一个空列表。

My code:

engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))
s = input("Search for a book: ")
q = db.execute(f"SELECT * FROM books WHERE isbn LIKE '%\:s\%' OR author LIKE '%\:s\%' OR title LIKE '%\:s\%'", {"s": s}).fetchall()

我在用着\为了转义函数使用占位符变量的值时插入的引号,如果我删除它们,则会收到此错误:

sqlalchemy.exc.ProgrammingError: (psycopg2.errors.SyntaxError) syntax error at or near "grey"
LINE 1: SELECT * FROM books WHERE isbn LIKE '%'grey'%' OR author LIK...

无论如何,在 SQLAlchemy 中可以使用通配符吗?

我可以通过使用格式化字符串而不是变量占位符来完成这项工作,但这将使我的代码容易受到 SQL 注入的攻击。 我也在使用 PostgreSQL。


The %字符应该是您传入的参数的一部分,而不是模板字符串,并且您不应该手动添加引号。让 SQLAlchemy 为您做这件事。

此外,模板不需要是 f 字符串。

例如:

s = input("Search for a book: ")
q = db.execute(
    "SELECT * FROM books WHERE isbn LIKE :s OR author LIKE :s OR title LIKE :s",
    {"s": "%" + s + "%"},
).fetchall()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 SQLAlchemy 中使用通配符? [复制] 的相关文章

  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • XML 解析:格式良好的检查:未声明的实体

    我正在使用 SSMS 2008 但收到以下错误 你知道这意味着什么吗 Msg 9448 Level 16 State 1 Line 4 XML parsing line 1 character 89 well formed check un
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我

随机推荐

  • 如何创建读取 shebang 的 Sublime Text 3 构建系统

    如何在 Sublime Text 3 中创建构建系统 cmd 是否被替换为 shebang 如果存在 更具体地说 是否有办法更改 Python 构建系统以使用 shebang 中指定的 Python 版本 并在不存在 shebang 的情况
  • AngularJS:为什么 ng-model 值没有在范围变量中更新

    我正在使用 jquery timepicker 插件及其角度指令 当我从 javascript 重置范围值时 同时范围值不会更新 我尝试对 timepicker 指令文件进行更改 但没有成功 例子 选择开始时间 1 00AM 然后结束时间自
  • geom_text 适用于 R 中的直方图?

    想知道是否geom text效劳于hist 尝试了下面的代码 似乎没有效果 我只想在为每个直方图桶绘制每个条形时显示标签 属于特定直方图桶的元素数量 任何解决方案表示赞赏 谢谢 p lt hist df foo main title xla
  • 从存储为节点缓冲区的字节数组创建类型化数组

    从节点docs https nodejs org api buffer html buffer buf slice start end关于从缓冲区创建类型化数组 缓冲区的内存被解释为数组 而不是字节数组 那 是 new Uint32Arra
  • 后台进程重定向到 COPROC

    在下面的测试脚本中 我运行一个基本协进程 echo内置 在后台运行 附加其标准输出 bin bash TEST 1 coproc bin sleep 100 echo gt COPROC 1 该脚本总是失败 没有明显的原因 给出输出 tes
  • 如何确定 .Net DLL 是否用于 GUI 应用程序或 Web 服务?

    如何确定 Net DLL 是否在 Windows GUI 应用程序或 Web 服务中运行 我有一个低级类 在两个应用程序之间共享 并且需要在 Web 服务中使用它时禁用消息框 Windows 应用程序有超过 200 个解决方案 我无法重构现
  • 将 !important 应用于具有多个选项的字体系列

    如何将 important 应用于以下样式 font family Trebuchet MS Verdana Helvetica Sans Serif 我已经尝试过这个 但不起作用 font family Trebuchet MS Verd
  • Prolog 程序返回命题公式中的原子

    我是序言新手 正在尝试编写一个返回atoms在一个结构良好的命题公式中 例如查询ats and q imp or p q neg p As 应该返回 p q for As 下面是我的代码 它返回的公式为As 我不知道该怎么做才能拆分sing
  • IIS7 URL从根目录重定向到子目录[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用带有 IIS7 的 Windows Server 2008 我需要重定向访问的用户www mysite com to wwww
  • oracle中的触发器

    触发器可以增强或阻碍性能的条件是什么 何时使用系统中的触发器 何时不使用触发器 如何使用触发器来施加复杂的约束 执行触发器总是会产生一些开销 至少 您要为导致触发器触发的每一行执行从 SQL 引擎到 PL SQL 引擎的上下文转换 虽然触发
  • JavaFX ObservableList - 添加项目导致 ConcurrentModificationException

    我有一张桌子Albums用户可以过滤和排序 这是该表的样子 正如您所看到的 这些列是可排序的 并且顶部有一个文本框 当前正在过滤其中包含字符串 cu 的专辑 一切都很完美填充专辑列表后 但是 如果我在填充专辑列表时尝试排序或过滤 我会得到一
  • c++ 不合逻辑 >= 处理 vector.size() 时的比较很可能是由于 size_type 是无符号的

    在处理 vector size 又名 size type 时 我可以使用一些帮助来澄清这种奇怪的比较 vector
  • 如何更改 jqgrid 中弹出的列选择器中的列名称?

    我有一个两列标题 Phase1 和 Phase 2 图像 1 现在在列选择器窗口中显示列名称 图 2 Name 类别 子类别 类别 子类别 我想以不同的方式展示 Name 一等奖组 一期子类别 Ph2组 Ph2子类别 注意 根据我的要求不要
  • 何时在 Ruby 中使用“self”

    这个方法 def format stations and date from station titelize if from station respond to titleize to station titleize if to st
  • 使用 Windows 身份验证对单个操作而不是整个应用程序进行身份验证

    我想在某个计算机上使用 Windows 集成身份验证进行身份验证单控制器动作而不是全局应用程序 我在网上和StackOverflow上阅读了很多文章 但没有找到答案 请注意 我正在 Web API 2 0 中进行开发 而不是 MVC 也就是
  • XMLHttpRequest 上传带有参数的文件

    我想使用 Safari 5 1 的 XMLHTTRequest 上传文件并在 POST 请求中传递参数 这如何实现 它应该是纯 JavaScript 而不使用任何 API 我这样做是因为 Safari 不支持 5 1 版本中的 FileRe
  • 为什么 Python 异常被命名为“Error”?

    为什么 Python 异常被命名为 Error 例如ZeroDivisionError NameError TypeError 而不是 例外 例如ZeroDivisionException NameException TypeExcepti
  • Google 群组和订阅代码

    我对任何领域的编程都是新手 刚开始我有一个添加订阅按钮的任务 我拥有的 Google 群组邮件列表 一个网站 我没有 Google 应用引擎 要求 非常简单 网站中的订阅按钮可以自动将人们订阅到邮件列表 语言 PHP HTML 不要问我有关
  • ReplaceReducer 导致意外的键错误

    我有一个 React 应用程序 它动态加载模块 包括模块的减速器函数 然后调用 Redux 的replaceReducer 来替换减速器 不幸的是我收到了一个错误 在传递给 createStore 的初始状态参数中发现意外的键 bookEn
  • 如何在 SQLAlchemy 中使用通配符? [复制]

    这个问题在这里已经有答案了 我正在尝试使用 SQLAlchemy 对查询使用通配符 但我得到一个空列表 My code engine create engine os getenv DATABASE URL db scoped sessio