python - Dalam flask-sqlalchemy, bagaimana untuk menukar pernyataan pertanyaan ke SQL mentah dan mencetaknya?
世界只因有你
世界只因有你 2017-06-12 09:26:42
0
3
1351

Gunakan sqlalchemy dalam kelalang python untuk mencipta jadual seperti berikut:

class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True)
    default = db.Column(db.Boolean, default=False, index=True)
    permissions = db.Column(db.Integer)
    users = db.relationship('User', backref='role', lazy='dynamic')

Hasil pertanyaan semasa adalah seperti berikut:

In [8]: Role.query.filter_by(name='User').first()
Out[8]: <app.models.Role at 0x159211982b0>

Apa yang kami dapat ialah objek set pertanyaan Adakah terdapat sebarang cara untuk mencetak semua kandungan objek ini? Daripada hanya mendapat satu harta objek ini setiap kali seperti berikut? Juga, bagaimana untuk mencetak pernyataan SQL yang sebenarnya dilaksanakan semasa melaksanakan pernyataan ini?

In [7]: Role.query.filter_by(name='User').first().permissions
Out[7]: 7
世界只因有你
世界只因有你

membalas semua(3)
为情所困

Ini lebih kepada operasi sqlalchemy itu sendiri.

Apa yang saya tahu ialah apabila menggunakan sqlalchemy. Katakan ada pertanyaan seperti berikut:


q = DBSession.query(model.Name).order_by(model.Name.value)
   

Lakukan terus:


print str(q)

Anda boleh mencetak penyata sql sebenar. Dan anda boleh melakukan output dialek untuk data yang berbeza, seperti berikut:

from sqlalchemy.dialects import postgresql
print str(q.statement.compile(dialect=postgresql.dialect()))

Jadi dalam falsk Kerana flask-sqlalchemy itu sendiri hanyalah pakej flask-sqlalchemy本身只是对sqlalchemy. Pendekatan yang sama harus digunakan

phpcn_u1582

Jika saya ingat betul, hanya gunakan str (model anda) secara terus

三叔

Cetak pernyataan sql yang dilaksanakan sebenar:
SQLALCHEMY_ECHO=True

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!