1

我试图找到我的问题的答案。

我找到了一些答案,但我不知道如何将这些应用于我的问题。

我正在使用烧瓶 sqlalchemy。

这是我用于获取产品列表的 python 代码。

def get_products(cls, request):
    with gshop.session_scope() as session:

        products = session.query(Product.id,
                                 Product.product_name,
                                 Product.logo_img_id,
                                 Product.product_cat_id,
                                 Product.display_no,
                                 Product.brand_id)

        if 'query' in request:
            query = json.loads(request['query'])
            filters = query['filters']
            for key, value in filters.items():
                try:
                    products = products.filter(getattr(Product, key).like("%" + str(value) + "%"))
                except AttributeError:
                    pass

'request' 参数是来自客户端 http 请求的 'param'。

print(request)看起来像这样。

{
    'query': '{
        "filters":{
            "product_name":"aBcDeFgH"
        }
    }
}

当我尝试按名称“aBcDeFgH”搜索产品时,

我想获取包含此关键字且忽略大小写的所有数据。

我怎样才能做到这一点?

如果您有任何链接或想法,请将其扔给我。

然后我会尝试一种新的引用方式。

先谢谢了,新年快乐。:)

4

1 回答 1

0

我真的很抱歉我的谷歌搜索能力..

这是一件很简单的事情。

不区分大小写的 Flask-SQLAlchemy 查询

这个链接为这个愚蠢的问题提供了一个完美的答案。

这是一个解决方案示例。

原始代码

products = products.filter(getattr(Product, key).like("%" + str(value) + "%"))

已解决的代码

products = products.filter(getattr(Product, key).ilike("%" + str(value) + "%"))

只需更改likeilike.

于 2018-01-05T04:38:34.930 回答