Bagaimana cara menentukan kolom yang saya inginkan dalam kueri saya menggunakan model (ini memilih semua kolom secara default)? Saya tahu bagaimana melakukan ini dengan sesi sqlalchmey:, session.query(self.col1)
tapi bagaimana cara melakukannya dengan model? Saya tidak bisa SomeModel.query()
. Apakah ada jalan
python
sqlalchemy
flask-sqlalchemy
Matthew Scragg
sumber
sumber
ID
bidang konflik yang ada di kedua tabel.label()
stackoverflow.com/a/11535992/248616sama dengan
untuk alias, kita bisa menggunakan .label ()
sumber
session.query().with_entities(SomeModel.col1)
Anda dapat menggunakan fungsi load_only :
sumber
.first()
dan.one()
(yang akan malas / ingin memuat bidang dan relasi), - dapat disetel sebagai komponen kueriwith_entities
seperti yang diberikan dalam jawaban yang diterima dan kueri yang dipilih hanya bidang itu /.Anda dapat menggunakan
Model.query
, karenaModel
(atau biasanya kelas dasarnya, terutama dalam kasus di mana ekstensi deklaratif digunakan) ditetapkanSesssion.query_property
. Dalam halModel.query
ini sama denganSession.query(Model)
.Saya tidak mengetahui cara mengubah kolom yang dikembalikan oleh kueri (kecuali dengan menambahkan lebih banyak menggunakan
add_columns()
).Jadi bidikan terbaik Anda adalah menggunakan
Session.query(Model.col1, Model.col2, ...)
(seperti yang telah ditunjukkan oleh Salil).sumber
Anda dapat menggunakan Query.values, Query.values
session.query(SomeModel).values('id', 'user')
sumber
Contohnya di sini:
Saya menanyakan db untuk film dengan rating <> 0, lalu saya mengurutkannya berdasarkan rating dengan rating tertinggi terlebih dahulu.
Coba lihat di sini: Select, Insert, Delete di Flask-SQLAlchemy
sumber