問題タブ [python-elixir]

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 に答える
1126 参照

python - Elixir と SQL alchemy で Flask を使用する

FlaskでElixirを使用しようとしています。SQL Alchemy を直接使用しているため、多対多の関係でのデータ挿入について混乱しています。モデル ファイルを作成し、必要なテーブルを生成しました。

SQl 錬金術の場合、次のようにフラスコから呼び出します。

Elixirで同じことをする方法は? Entity に get_or_init のモデル メソッドがあるので、それも使用しようとしています。

SQLAlchemy 自体を使用しようとすると (elixir は単なるラッパーであるため)、次のようになります。

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

python - Python CamelotはElixirに関連付けられていますか?

キャメロットのドキュメントには、エリクサーモデルを使用していると書かれています。SQLAlchemyにはしばらくの間declarative_baseが含まれていたので、別のアプリではElixirの代わりにそれを使用していました。ここで、SQLAlchemy/宣言型モデルをCamelotで直接使用したいと思います。

Stackoverflowには、CamelotがElixirに関連付けられておらず、さまざまなモデルを使用できる可能性があるという投稿がありますがその方法については説明されていません。

キャメロットのオリジナルmodel.pyには、次のコンテンツのみが含まれています。

SQLAlchemyモデルを追加し、次のように変更model.pyしました。

うまくいきませんでした。起動するmain.pyと、GUIとTestサイドバーは表示されますが、行は表示されません。これは、トレースバックの末尾です。

これはelixir_admin.py46-52行目のコードです。

このコードが問題の原因である場合、メソッドを上書きしてデフォルトのクエリを変更して機能させるにはどうすればよいですか?

CamelotでSQLAlchemy/宣言型モデルをどのように使用できますか?

0 投票する
0 に答える
386 参照

sql - 既存のデータベースでのリレーションシップのための SQLAlchemy/Elixir 構文

接続文字列を介して接続された既存の MySQL データベースのテーブルを表す Elixir を使用して Python モデルを構築しようとしていmysql+pyodbcます。Elixir は列構造を問題なく反映しますが、関係を反映することはできないようです。そのため、指定しようとしています。私は、宣言形式と DSL 形式の両方で、構文に非常に苦労しています。

例として、次の SQL ステートメントで作成された 2 つのテーブル (1 対 1) にまたがる外部キー関係があります。

両方のテーブルで、person_idが主キーです。ドキュメントを読んだ後の私の感覚 (残念ながら、自動作成されたデータベースに重点を置いており、既存のデータベースへの接続にはあまり重点を置いていません) は、制約名/インデックスがおそらく問題であるということです。

or関係を使用して最初の制約をモデル化し、OneToOneor関係を 2 番目の制約に使用しようとしています。私が試したそれぞれのケースで、キーワード引数を使用するための指示を含むエラーが発生しましたが、これも役に立ちませんでした.has_oneManyToOnebelongs_toprimaryjoin

関連して、次の SQL コードを使用してデータベースで定義されたOneToManyorリレーションシップで同様の状況が発生しました。has_many

ここでperson_idは、テーブルの主キーですが、personテーブルの主キーではありませんperson_by_age。この制約により、Elixir では上記と同様のエラーが発生します。

誰もこれを以前にやったことがありますか?これらの関係を指定して、データベースに既に存在する既存の外部キー制約とインデックスを使用するにはどうすればよいですか?

どんな助けでも大歓迎です!

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

python - SQLAlchemy宣言型拡張とエリクサー

私は自分のプロジェクトの1つでSQLAlchemyを使用することを計画しており、テーブルの宣言型構文に非常に興味があります。

そのためにElixirDeclarativeLayerを使用するように言われましたが、同時にSQLAlchemyには組み込みの宣言型拡張機能があります。

Elixirと宣言型拡張の現在の違いは何ですか?長所/短所?

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

python - 具体的な継承を持つ基本エンティティ

deleted削除されたレコードをマークするフィールドを持つ基本エンティティが必要です。そして、私には2つのサブクラスがあり、それぞれに独自の列を持つ独自のテーブルがあります:

そして結果:

質問:

  1. 基本エンティティのテーブルの作成を回避するにはどうすればよいですか? - 解決済み:using_options(abstract = True)
  2. deleted作成されたテーブルにフィールドがないのはなぜですか? -これで解決しました-中に入れるのを忘れていましたField
  3. 各サブクラスに入力することは避けたいのですusing_options(inheritance='concrete')が、それでも「具体的な継承」があります。すべてのサブクラスのデフォルトにする方法はありますか?
0 投票する
1 に答える
1443 参照

python - SQLAlchemy と Elixir を使用した MySQL 識別子 (テーブル名、列名) の長さ制限

Elixir で SQLAlchemy を使用していますが、SQLite を使用するとすべて正常に動作します。ただし、MySQL に切り替えると、テーブル名とカラム名の長さ制限 (64 文字) があります。いくつかの ManyToMany 関係を持つエンティティが非常に多くMyFirstEntity_rel_otherEntities__MySecondEntity_rel_theFirstEntities、自動化された方法のように結果の長いテーブル名をクランプする方法が見つかりませんでした。

クラスとリレーション名によっては、ManyToOne リレーションシップの外部キー列名が長すぎます。create_engine("...", label_length = 64)トリックを実行しなかっshortcolumns = Trueたため、Python モジュール名全体をプレフィックスとして使用することを回避するために既に使用しています。

私が見る唯一の方法は、スキーマ全体を調べて、tablename (ManyToMany 関係の場合) と columnname (ManyToOne 関係の場合) を手動で定義することです。他のオプションはありますか?

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

properties - 追加のプロパティで elixir/sqlalchemy フィールド/列にタグを付けることは可能ですか?

エンティティのいくつかの列を検索可能としてマークしたいと思います。理想的には、列ごとにクリーンな方法で。「タグ付け」したり、クラスの列定義にプロパティを追加したりすることはできますか? コードの他の場所では、具体的にどのクラスであるかを知らなくても、任意のエンティティで検索可能な列を取得できるようにしたいと考えています。

例えば:

明らかに上記の例は機能しませんが、これを行う方法はありますか? 私はこの分野の専門家ではありません。数日間の検索/ドキュメント トロールでは、何の役にも立ちませんでした。

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

python - UnitTest:多対多の関係を追加できません:整合性エラー(削除は彼の仕事をしていないようです)

個人とチームの2つのテーブルがあります。それぞれが他と多対多の関係にあります。

関数でこれを行います(テストの各関数のに、私の場合は3回setUp呼び出されます)

そして私の機能(テストの各機能の後にtearDown呼び出されます)

最初のテストはパスしますがsetUp、2 回目に が呼び出されると、次のようになりました。 IntegrityError: (IntegrityError) columns person_id, team_id are not unique u'INSERT INTO team_persons__person_teams (person_id, team_id) VALUES (?, ?)' (5, 1)

delete が最初に行を実際に削除しなかったようです。なぜこれが起こるのか分かりません。

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

python - Elixir でジェネレーティブ検索を作成する

Elixir の使用に行き詰まっており、現在、改善したいデータベースを検索する方法が非常に面倒です。ドキュメンテーションは、基本的なジェネレーティブ検索を行う方法についての洞察を提供しますが、私は多くの異なるクラスをステップ実行する必要があり、自分でリストをスキャンするよりも Elixir を使用したいと考えています。

次に例を示します。

この例では、次のすべての学生を見つけたいと考えています。

  1. 2008年以降に登録
  2. カリフォルニア出身です
  3. 「テレビゲーム」を趣味にする

私が行く方法があるはずだと思っています:

現在、それらをリストに入れてセットを探しています。

0 投票する
4 に答える
3603 参照

python - Elixirを初期化できません

私はElixirとSQLAlchemyから始めています。Mysqlデータベースに接続するPythonファイルを作成しましたが、Pythonで実行するとすぐに、次のエラーが発生します。

私はそれを探していましたが、理由がわかりません。これはyonki.pyファイルです:

必要なモジュールがインストールされていないことが原因かもしれませんが、どれかわかりません。