問題タブ [flask-sqlalchemy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3232 参照

sqlalchemy - 動的データベース接続を備えたフラスコ-sqlalchemy

各クライアント独自のデータベース接続が格納されているメイン データベースが 1 つあります。したがって、すべてのクライアントは 2 つの db で動作します。メイン db と独自の db であり、http 呼び出しごとに接続を決定する必要があります。フラスコ-sqlalchemy 拡張機能を使用してこれを行うにはどうすればよいですか、または純粋に sqlalchemy にある可能性がありますか?

0 投票する
1 に答える
5819 参照

python - SQLAlchemy による単純な検証

私はsqlalchemyが初めてで、Django ORM(整数、電子メールなどの最小と最大)によって提供されるように、モデルのフィールドの簡単な検証を達成しようとしています。SQLAlchemy は、この種のフィールド検証をすぐに実行できますか? ちなみに、私はFlaskでSQLAlchemyを使っています。

0 投票する
2 に答える
5189 参照

python - Flask-SQLAlchemy: 写真列タイプ

私がFlask/SQLAlchemyでコーディングしているWebアプリケーションでは、いくつかのモデルに「写真」列タイプが必要です。これにより、元の画像をファイルシステムのどこかに保存し、画像のさまざまなサムネイルサイズを作成できます。理想的には、次のようなものが必要です。

そして、次のようなファイルの URI/URL にアクセスできました: model.photo.big など...

だから、私の質問は: model.photo オブジェクトにセッター/ゲッターを追加して、言及された構文で URIS/URLS にアクセスできるようにする方法は? ところで、誰かが SQLAlchemy を使用したユーザー定義型に関する優れたチュートリアル/リソース (公式ドキュメント以外) を持っている場合は、共有していただければ幸いです。

どうも。

0 投票する
2 に答える
6356 参照

sqlalchemy - sqlalchemy group_by と count

sqlalchemy で Python フレームワークとしてフラスコを使用しています。モデルは、クエリの作成に役立つ query_property を使用します。

各人には、住んでいる都市、州、国があり、すべての結果を収集して、次のような出力を行いたいと考えています。

これには明らかに、国、州、都市ごとにカウントとグループを選択する必要があります。グループ化は機能しますが、クエリプロパティに選択メソッドがないため、カウントを実装する方法がわかりません。その場合、次のように記述します。

group_by と count でquery_propertyを使用する方法を知っている人はいますか?

0 投票する
1 に答える
1330 参照

sqlalchemy - SQLAlchemyを混乱させる同じテーブル名の2つの関係

IE:

エラーが発生します:

ArgumentError:リレーションシップShare.user_fromの親/子テーブル間の結合条件を判別できませんでした。'primaryjoin'式を指定します。'secondary'が存在する場合は、'secondaryjoin'も必要です。

どうすればこれを修正できますか?

ありがとう!

0 投票する
2 に答える
13576 参照

python - 読み取りスレーブ、読み取り/書き込みマスターセットアップ

単一のmysqlサーバーを使用するFlask、SQLAlchemyWebアプリがあります。データベースのセットアップを拡張して、読み取り専用のスレーブサーバーを作成し、マスターデータベースサーバーへの書き込みを続行しながら、マスターとスレーブの両方に読み取りを分散できるようにします。

私はいくつかのオプションを見てきましたが、プレーンなSQLAlchemyではこれを行うことができないと思います。代わりに、Webアプリケーションに2つのデータベースハンドルを作成することを計画しています。1つはマスターデータベースサーバーとスレーブデータベースサーバー用です。次に、単純なランダム値を使用して、「SELECT」操作にマスター/スレーブデータベースハンドルを使用します。

ただし、これがSQLAlchemyを使用する正しい方法であるかどうかはわかりません。これをやってのける方法についての提案/ヒントはありますか?

0 投票する
2 に答える
371 参照

python - レコード データに基づく SqlAlchemy モデルの関連付け

テーブルがあり、テーブルまたはテーブルinfoと関係があります。carsuv

フィールドで指定しinfo.typeます。

では、レコードの型データに基づいてその場で関連付けを作成するにはどうすればよいでしょうか?

編集:データで満たされたテーブルが既にあるため、db スキーマを変更できません。

0 投票する
1 に答える
3535 参照

python - SQLAlchemyの具体的な継承とのポリモーフィックな関係

SQLAlchemyで具象テーブルの継承を使用しています。宣言型モデルクラスでは、正常に構成されています。

私のコードは次のようになります:

シェルでテストしている間は正常に動作します。

それから、他のモデルで関係を設定しているときに問題が発生します。各エントリにはモデルpost_idを結合するための外部キーPostがありますが、でバックリファレンスを定義できませんでしたPost。それはうまくいきません:

例外が発生し、次のように述べました。

InvalidRequestError:1つ以上のマッパーが初期化に失敗しました-他のマッパーの初期化を続行できません。元の例外は次のとおりです。クラス'models.entry.Entry'はマップされていません。

明らかに、Entryこれは抽象クラスであり、実際に存在するテーブルにマップできませんでした。公式ウェブサイトのドキュメントには例がありますが、その基本クラスは抽象的ではありません。では、抽象モデルとのポリモーフィックな関係を設定するにはどうすればよいですか?

0 投票する
1 に答える
13761 参照

python - SQLAlchemy リレーションシップに delete-orphan を設定すると AssertionError: This AttributeImpl is not configured to trackparents が発生します

これは私のFlask-SQLAlchemy宣言型コードです:

基本的には、Declarative による多対多のタグ付けです。タグ付けからいくつかのエントリを削除するとき、SQLAlchemy でオーファンを片付けてほしいです。ドキュメントでわかったように、この機能を有効にするには、次のようにする必要があります。

ただし、このような設定はAssertionError: This AttributeImpl is not configured to trackparents につながります。私はそれをグーグルで検索しましたが、SQLAlchemy のオープンソース コード以外は何も見つかりませんでした。したがって、クラスメソッドTag.delete_orphans()(上記のコードにあります) を作成して、孤児が発生する可能性があると思うたびに呼び出すようにしましたが、それはあまりエレガントではないようです。

delete-orphan私の設定がうまくいかない理由はありますか?

0 投票する
1 に答える
660 参照

python - SQLAlchemyでassociation_proxyを介して多対多の関連タグの新しいセットを割り当てる最もエレガントな方法は何ですか?

これは私のFlask-SQLAlchemy宣言型コードです:

これはかなり標準的な多対多のタグ付けソリューションだと思います。ここで、役割のすべてのタグを取得し、新しいタグのセットを役割に設定したいと考えています。

最初のものはとても簡単です:

しかし、2 つ目のコードでは、1 日中 Python コードに出くわしました :-( 私はこれができると思いました:

...または少なくとも を使用して似たようなものですrole.tags[:] = ...が、 SQLAlchemy が既存のタグがあるかどうかを確認せず、それらすべてを完全に新しいエンティティとして挿入しようとしたため、私が発明したものはすべて多くの整合性エラーを引き起こしました。

私の最終的な解決策は次のとおりです。

問題は、これは本当に正しい解決策なのかということです。この些細な問題を解決するよりエレガントな方法はありますか? 全体の問題はこの質問に関連していると思います。たぶん私はばかげているだけかもしれませんし、物事を複雑にしすぎているのかもしれません... とにかく、提案をありがとう!