2012-02-01 9 views
0

次のように私は解決策を特定しようとしていたため、ユースケースの実装を持って、実装は次のとおりです。SQLAlchemyを使用して実行時にユーザー定義のSQLクエリを実行する方法は?

  • ユーザーはDATABASE_TYPE(MySQLのような、pgsqlで、sqliteのか、どのDBサポートのようなSQLサーバーの接続パラメータを定義します成功した
  • 、ホスト、ポート、SCHEMA_NAME、USER_NAMEとPASSWORD
  • は、ユーザが設けられた接続パラメータを検証するテスト接続を行い、そして成功と失敗のフィードバックを提供
  • )SQLAlchemyのことにより、ユーザは、次の(SQLクエリを入力しますSQLAlchemyのSQL式言語詳細 here)を実行する必要があるed。

実行時にSQLAlchemyのパラメータがユーザ定義されていることがわかった場合は、上記の接続パラメータとSQLクエリを消費するPythonでこの関数を実装しようとしています。クエリ結果を返します。方向や助けがあれば、これは素晴らしいことでしょう。

おかげ

+0

単に「>>> 'Pythonプロンプトでこれをしないのはなぜですか?すべてがSQLAlchemyへの単純なアクセスであれば、なぜ追加のコードを書くのでしょうか? –

+0

@ S.Lott Wellユーザーは、Webフォーム経由で接続パラメータとSQLクエリ(文字列として)を送信し、SQLAlchemyを使用することでクエリフォーマットを抽象化する必要があります。 –

+0

なぜこのようなWebフォームがありますか? Webフォームが本当に役に立つ仕事をしているようには見えませんか? –

答えて

1

私はsqliteのとpostgresのためにこれまでのところ、大規模プロジェクトの一環として、このようなものを抱えているが、これは一般化することができます。

ユーザーがDATABASE_TYPE(MySQL、pgsql、sqlite、SQLAlchemyでサポートされているデータベースなど)、HOST、PORT、SCHEMA_NAME、USER_NAME、PASSWORDを知っていることを期待する場合は、DB URLを要求するだけでよいでしょうもう少し簡単です。 )(

from sqlalchemy import create_engine 
    try: 
     engine = create_engine(url)   
     connection = engine.connect() 
     connection.close() 
    except Exception, e: 
     LOGGER.exception(e) 
     raise MyCusomException('Could not initialize db. Invalid URL.') 

CusomのSQLクエリは、テキストを使用して実行することができるhereを示すように構築:

は、後は、接続をテストすることができます。

+0

方向のための@ Bogdanに感謝、それは私の問題を解決します。再度、感謝します。 –

+0

@Bodgan JSONまたはpickleへの動的なクエリのシリアル化をシリアル化する方法を手伝ってくれるかどうかを確認したいのですか?ありがとう。 –

+0

私はあなたが何をしようとしているのか十分に理解していません。たぶんあなたが欲しい/試したことのいくつかの例を挙げてその問題に関する別の質問をしてみてください。可能ならば私は助けようとします。 – Bogdan

関連する問題