2011-03-08 19 views
9

Yalnızca SQL-Code oluşturmak için SqlAlchemy ORM-Mapper'ı kullanabilir miyim?/I INSERT için SQL oluşturabilir nasıl(Yalnızca) SQL-Code'u SqlAlchemy ile oluştur

TestUser = User("John", "Doe") 
print session.query(User) 

: Basit tablolar i

print users_table.select() 
print users_table.insert() 
print users_table.update() 
print users_table.delete() 

gibi kod kullanabilirsiniz Ama ORM ile ben sadece SEÇ-Bildirimleri için bir yol bulduk ile

GÜNCELLEME/SİLME (veritabanını gerçekten manipüle etmeden)?

Teşekkürler.

cevap

7

Belki de ORA yerine SQLAlchemy çekirdek ifade dilini mi istiyorsunuz?

http://www.sqlalchemy.org/docs/core/index.html

ORM

çok sıkı veriye bağlı ve böylece gerçekten onun DB oturumları ayrılmasını mümkün değil olacak şekilde tasarlanmıştır. Diğer taraftan, ifade dili doğrudan SQL'e çevrilebilir. (Sadece çıkan nesnelerin herhangi alıp str() onları geçmek ve eşdeğer SQL alırsınız.)

3

Sen sqlalchemy.orm.class_mapper işlevi aracılığıyla eşlenmiş sınıf için tablo nesneleri erişebilirsiniz:


users_table = class_mapper(User).mapped_table 
users_table.insert(..) 
Eğer bildirim sözdizimi kullanıyorsanız

, bunu yapabilirsiniz:


users_table = User.__table__ 
users_table.insert(..) 
3

Çok basit. Sadece sen ne gibi sen dize

TestUser = User("John", "Doe") 
# convert querying object to string 
query_stat = str(session.query(User)) 
print query_stat 

Ve burada olduğu gibi sorguyu dönüştürebilirsiniz, query_stat SQL sorgulama ifadesi olmalıdır.

+0

Eğer session.query (MyModel) .count() 'dırsanız? –