SQLAlchemy ORM(宣言形式)を使用すると、辞書の条件セットからプログラムでどのようにクエリを作成できますか?SQLAlchemy(ORM、宣言的):dictのキー/値からクエリを構築するには?
私は以前にdictで収集されたいくつかの基準に一致するレコードをusersテーブルで検索したいと考えています。私は、いくつかの文字列はなど、さまざまな分野の多くがあることを、ある使用されるフィールドを事前に知ることはできない、といくつかのフィールドが整数であることを処理できなければなりません
例:
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
email = Column(String)
2つのクエリは、次のdictsその結果、要求された:
q1_dict = {'id' : 177}
q2_dict = {'name' : 'Johnny', 'email' : '[email protected]'}
は、単にキーが属性が一致しているという事実に頼って、私はそれらの2枚のdictsから私のクエリを作成することができます任意の単純/一般的な方法はありますUserクラスの型を正しく扱いながら、au安全でない値などを避けるために?
私は数時間かけてこれを検索し、SQLAlchemyのドキュメントを閲覧しましたが、良い答えや例は見つかりませんでした。
ソリューション:例に必要な2つのクエリを取得する...
User.query.filter_by(**q1_dict)
User.query.filter_by(**q2_dict)
:
そうで、皆さんからの助けた後、溶液は、のような単純なもののようです。
私はあなたが提供したリンクを既に見ていましたが、私の "python"は自分自身で解決策に到達するのに十分ではなかったと思います。 :)
filter_by? –