def get_data_all(user_id, name, start_time, end_time, page=1, limit=10):
"""
sqlalchemy orm 执行原生sql语句
:return:
"""
try:
# 项目数据列表
conditions = dict()
base_sql_pre = "select * from table1 p where p.status = 1 and p.user_id = :user_id"
conditions.update({"user_id": user_id})
if start_time:
start_time_sql = " and p.create_time >= :start_time"
conditions.update({"start_time": start_time})
else:
start_time_sql = ""
if end_time:
end_time_sql = " and p.create_time <= :end_time"
conditions.update({"end_time": end_time})
else:
end_time_sql = ""
if name:
name_sql = " and p.name like concat('%', :name, '%')"
conditions.update({"name": str(name).strip()})
else:
name_sql = ""
# 分页
offset_size = (page - 1) * limit
pag
sqlalchemy - sqlalchemy中执行原生sql - 传参方式避免了sql注入
最新推荐文章于 2026-06-17 09:54:59 发布
本文介绍了一种使用SQLAlchemy ORM执行原生SQL的方法,包括条件筛选、时间范围过滤、模糊搜索及分页功能。文章详细展示了如何构建SQL语句并获取数据,同时提供了查询总数的实现方式。


518

被折叠的 条评论
为什么被折叠?



