如何使用python

时间:2018-01-05 01:32:20

标签: python database sqlalchemy flask-sqlalchemy ignore-case

我试图找到问题的答案。

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

我正在使用flask 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

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

print(request)看起来像这样。

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

当我尝试按名称' aBcDeFgH',

搜索产品时

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

我该怎么做?

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

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

提前致谢,新年快乐。 :)

1 个答案:

答案 0 :(得分:0)

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

这是一件简单的事情。

Case Insensitive Flask-SQLAlchemy Query

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

这是一个解决方案样本。

原始代码

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

解决的代码

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

只需将like更改为ilike