あるテーブルから別のテーブルに内容をコピーしたいとき
q = session.query(Test.id, Test.samp, Test.gene, Test.zygo, Test.count, Test.z_id) ins = insert(Test_temp).from_select( (Test_temp.id, Test_temp.samp, Test_temp.gene, Test_temp.zygo, Test_temp.count, Test_temp.z_id), q) conn = engine.connect() conn.execute(ins)
Pythonの文法的に()の中では自由に改行ができるので、このように適当に改行を入れて見やすく書くことができる。
同じ内容を
q = select(["test1.id, \ test1.samp, \ test1.gene, \ test1.zygo, \ test1.count, \ test1.z_id"], from_obj=['test1']) ins = insert(Test_temp).from_select( (Test_temp.id, Test_temp.samp, Test_temp.gene, Test_temp.zygo, Test_temp.count, Test_temp.z_id), q) conn = engine.connect() conn.execute(ins)
こういうふうに表現するときは””の中になってしまうので、自由に改行ができなくなって、エスケープの \(バックスラッシュ)を改行のところに入れてやる必要がある。
ここで前から気になっていた'''もしくは”””トリプルクオーテーションの出番らしい。
つまりクオーテーションの中では改行できないのだけれど、そこをトリプルにすると改行がオッケーになるらしい。つまり上の例は
q = select(["""test1.id, test1.samp, test1.gene, test1.zygo, test1.count, test1.z_id"""], from_obj=['test1']) ins = insert(Test_temp).from_select( (Test_temp.id, Test_temp.samp, Test_temp.gene, Test_temp.zygo, Test_temp.count, Test_temp.z_id), q) conn = engine.connect() conn.execute(ins)
と書くとよろしいようで。