https://developers.google.com/appengine/docs/python/ndb/
https://developers.google.com/appengine/docs/python/ndb/queries
ndb.gql と ndb.query に違いはありますか? (構文のほかに)
例えば
cursor = ndb.gql("select * from Account")
対
cursor = Account.query()
より読みやすいと思うので、ndb.queryが好きだからです
例:
acc=Account.query(Account.username==form.username.data,Account.password==form.password.data)
これらの 2 つの方法が内部で異なる/等しい場合、情報を見つけることができませんでした。
=> パフォーマンスのトレードオフがあるのではないでしょうか?
SQL に慣れている場合は、GQL を使用する際の誤った仮定に注意してください。GQL は NDB のネイティブ クエリ API に変換されます。これは、API 呼び出しがデータベース サーバーに送信される前に SQL に変換される典型的なオブジェクト リレーショナル マッパー (SQLAlchemy や Django のデータベース サポートなど) とは異なります。GQL はデータストアの変更 (挿入、削除、または更新) をサポートしていません。クエリのみをサポートします。
ndb.query は正しく翻訳する必要がないため、「高速」にする必要があると思います。