問題タブ [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 に答える
383 参照

python - 継承+外部キー

私はこれについて絶対に頭を悩ませてきました、そして問題を回避する方法を理解することができないようです。モデルから無関係なフィールドをたくさん切り取ったことに注意してください

SQL-Alchemyモデルをコーディングしている最中で、次の問題が発生しました。

それぞれが完全に異なる属性を持つ複数の課金システムと、異なるタイプのサブスクリプション属性(つまり、ユーザー名、ノードの場所など)のために、私はポリモーフィックな継承の道を進む必要がありました。

1つを除いて、すべて正常に機能しています。

次のコマンドを実行するとします。

次のエラーが発生します。

私はそれが何を言っているのか理解しており、私は次のことを試みました。

これはIDのみを格納し、関連付けられたオブジェクトを取得しようとすると、代わりに整数を受け取ります。これには、追加のクエリを実行する必要があります。私はこれが行く方法ではないと思います。

また、すべての課金システムIDの外部キーをProduct1モデルに追加してみました

これもまったく機能せず、型が適応できないことを示す同じProgrammingError例外を受け取りました。

マニュアルをトロールしましたが、その方法がわかりませんが、これを実現するには、なんらかの魔法のオプションが必要です。

それ以外の:

ポリモーフィックモデルのセットにIDを照会し、ベースモデルのクラスのみを取得する方法に光を当てることができる人はいますか?

私はこれが私の問題を解決するだろうと感じています、私はそれをどのように解決するのかよくわかりません。

これを読んでくれてありがとう、そして私は本当に私がどこで間違っているのかを知りたいです(私もあまりにも長い間起きていたので、それは助けにはなりません)。

乾杯、リス

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

python - Python Flask、SQLAlchemy の関係

私はすでに数時間この問題を解決しようとしてきましたが、SQLAlchemy を動作させることができません (User と Registration の 2 つの新しい関数を配置するまでは動作していました)。

これは、実行時に表示されるトレースバックです。

私もこれを試しました:

そして、私はこのエラーを受け取りました:

何か案が?ありがとうございました!

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

python - Sqlalchemy: 1 対多の関係と多対多の関係の組み合わせ

多対多の関係を持つユーザーとグループのテーブルがあります

ここで、プライマリ グループをユーザー クラスに追加したいと思います。もちろん、group_id 列と Group クラスへの関係を追加することもできますが、これには欠点があります。User.group を呼び出すときに、primary_group を含むすべてのグループを取得したいと考えています。プライマリ グループは、常にグループ関係の一部である必要があります。

編集:

進むべき道は関連オブジェクトのようです

AssociationProxy を使用してこれを単純化することはできますが、ユーザーごとに 1 つのプライマリ グループのみを強制するにはどうすればよいでしょうか?

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

python - SQLAlchemy でクラスレス値との関係を作成するにはどうすればよいですか?

Flask で SQLAlchemy を使用しています。システムが使用できるモードを表すテーブルがあります。また、各モードに適用できる標高のリストを含むテーブルもあります。(したがって、これは多対多の関係です。) 以前、テーブルにマップされたクラスに属性 (ここのelevations内部のようにScanModes) を追加したとき、ターゲットもクラスでした。

relationshipクラスで標高をラップする (および対応するテーブルを作成する) ことはより理にかなっていScanModes.elevationsます? 他の提案も受け付けています。

0 投票する
3 に答える
7058 参照

python - Flask-SQLAlchemy のセットアップ

Windows で Flask と SQLAlchemy をセットアップしようとしていますが、問題が発生しています。

私は PostgreSQL 9.1.4 (32 ビット) と Psycopg2 パッケージと共に Flask-SQLAlchemy を使用しています。関連するコードは次のとおりです。DB が接続してコミットしていることをテストするためだけに、基本的な User モデルを作成しました。

3 ビットのコードは__init__.py、アプリケーションのファイル、models.pyファイル、および私のsettings.pyファイルから取得されます。

対話型プロンプトを開いて次のリンクのコードを試してみると、ProgrammingError 例外が発生します (詳細はリンクを参照)。

何が原因でしょうか? 私はドキュメンテーションに従いましたが、特にWindowsでpsycopg2およびPostgreSQLでDjangoを使用したことを考えると、私が間違っていることについて単に混乱しています。

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

python - SQLAlchemyメニュー項目の階層/順序

私はORMにかなり慣れていないので、Flaskアプリのメニューを作成するのに助けが必要です。モデルMenuItemを実装しました(srcは以下にあります)。

箇条書きは次のとおりです。

  • それはそれ自体と1対多の関係を持っています。
  • モデルと多対多の関係にありますRole

私の質問:

  1. generate_menu fnでアクセスできない子オブジェクトの削除をスキップできますか?このコード(再帰メソッドmark_restrictedの呼び出し)は複雑すぎるように見えますが、ORMクエリで実行できるのでしょうか?

  2. メニュー項目の順序付けを実装するためのベストプラクティスは何ですか?

Thxみんな!

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

python - SQLAlchemy - 一度に 3 つのテーブルを検索する

編集: すみません、以下の例で間違いを犯したことに気づきました。これが私が達成したいことです:

以下に説明する 3 つのテーブルがあるとします。ユーザーがクエリを入力すると、名前が LIKE %query% である結果の 3 つのテーブルすべてが検索されますが、一意の結果のみが返されます。

データと出力の例を次に示します。

データ:

ユーザーが「j」を検索すると、John と Jesse の 2 つの孫エントリが返されます。ユーザーが「j, Joshua」を検索すると、子が Joshua である孫のみが返されます。この場合は、John のみです。

基本的に、すべての孫エントリを検索したいのですが、ユーザーがさらにキーワードを入力すると、関連する子エントリの名前に基づいてそれらの孫をフィルタリングします。"j" は、"j" で始まるすべての孫を返します。"j, Josh" は、"j" で始まり、%Josh% に似た子を持つすべての孫を返します。


だから、私はこのような設定をしています:

孫は子にリンク/マップされます。子は親にマップされます。

私がやりたいことは、次のようなもので、3 つのデータベースすべてを一度に検索します。

上記のクエリは明らかに正しくなく、エラーを返します。

私がしようとしていることについて正しい方法は何ですか?

私はMySQL、Flask-SQLAlchemy(SQLAlchemyを拡張すると信じています)、Flaskを実行しています。

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

mysql - SQLAlchemy - 複数のテーブルのクエリと結果の結合

答えはもう必要ありません。

MySQL データベースに次の 2 つのテーブルがあります。

私がしたいのは、両方のテーブルをクエリしますが、一意の結果を返すことです (重複はありません)。 Child.name が %query% のように両方のテーブルを検索し、すべての子要素を返したいのですが、すべての子も返したいです。 Parent.name が LIKE %query% である Parent の JOIN が機能する可能性があると思いますが、JOIN の使用方法に慣れていません。

データと出力の例を次に示します。

ユーザーが「Jesse」をクエリすると、1 つの結果が返されます - 名前が LIKE %Jesse% の子。ユーザーが「Skylar」にクエリを実行すると、2 つの結果が返されます - Child where parent_id = Parent.id WHERE Parent.name is LIKE %Skylar% したがって、Skylar に属する両方の子が返されます。

前もって感謝します!

編集:また、私は子を親に逆参照しています。

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

mysql - SQLAlchemy - MySQL JOIN の方法

次の構造のMySQLデータベースがあり、誰かが以下のSQLクエリをSQLAlchemyに変換するのを手伝ってくれることを望んでいました.

データベース構造:

ここに私のモデルがあります:

SQLAlchemy に変換したい SQL は次のとおりです。

テーブルの下部の各エントリはmiddleに関連し、中央の各エントリはtopに関連しています。データベースにクエリを実行して、名前が LIKE %query% であるのすべてのエントリと、ミドルネームが LIKE %query% である下のすべてのエントリのエントリ、および中央が上である下のすべてのエントリのエントリを検索したい名前は LIKEクエリです。

次のようなSQLAlchemyに変換したい:

つまり、Middle のエントリに関連する Bottom のエントリがあり、Middle のエントリが Top のエントリに関連している場合、Top で適切な名前を検索すると、Middle のエントリではなく、そのエントリが返されます。は関連していますが、関連する Middle エントリに関連する Bottom エントリです。

以下に例を示します。

データ:

「Walter White」を検索すると、Middle リレーション (Jesse Pinkman) ではなく、Bottom リレーションから Middle リレーションの結果 (Gus Fring) が返されます。

前もって感謝します :)。