2017-03-29 18 views
1

2つのORMを同じWebアプリケーションに混在させることは可能ですか?もしそうなら、最適な方法は?なぜそうなのか? - flask-mysqldbを使用してフラスコ内のWebアプリケーションを開発しています。私は認証システムを実装する必要があります。フラスコ - mysqldbには安全な方法はありません。 - これで私はフラスコのセキュリティを実装しようとしていますが、フラスコのsqlalchemyだけで動作するので、sqlalchemyとmysqldbを混在させようとしています。それ以前には最適かどうか、 sqlalchemyに沿ったユーザー認証とmysqldbへの他のデータの使用につながります。2つのORMSを同じWebアプリケーションで混在させることはできますか?

+0

なぜFlask-MySQLdbでログインを実装する安全な方法はないと思いますか?データベースはログインシステムに影響しません。 – davidism

+0

私は最初からログインシステムを構築したくありませんフラスコログインのような優れたセキュリティを備えた箱から取り出したいと思っています。フラスコログインはsqlalchemyと一緒にしか使えません。 – titpoettt

+0

読んだところは間違っています。私は答えはまだ "SQLAlchemyを使用する"ことですが、質問の前提は少しです。 – davidism

答えて

1

可能ですが、お勧めしません。このことを考えてみましょう:あなたのアプリの

  • 半分は正しいORMは、テーブルにフィールドを追加する
  • 提供しています何の恩恵を受けないであろうことは多くの場所で生のSQLを編集して、モデルを変更することを意味します。
    同期させておくことを忘れないでください。

また、あなたは生のMySQLdbを使用するポートすべてがSQLAlchemyのを使用することができます。

  • は、あなたのテーブルにフィールドを追加する必要がありますか? 1つの場所でモデルを変更するだけです。
  • ORMが生成するSQLクエリが嫌いですか?あなたはまだこれに対して低レベルのコントロールを持っています。
+1

あなたの答えに追加するだけです。低レベルのdbクエリが必要な場合は、低レベルのSQLサポートを提供するSqlAlchemy Core -http://docs.sqlalchemy.org/en/latest/core/があります。 –

2

各ormにモジュールを割り当てることができます。 1つのモジュールはauth_dbと呼ばれ、もう1つのモジュールはdata_dbと呼ばれます。メインのアプリケーションファイルでは、両方のモジュールをインポートしてデータベース接続を初期化するだけです。つまり、このアプローチは将来的には維持するのが難しく、他の開発者が何が起こっているのかを理解することは難しいでしょう。私はあなたのフラスコ - mysqldbコードをsqlalchemyに移動して、1つのORMしか使用しないことをお勧めします。

関連する問題