クラス間の関係をコーディングするのは、最初は難しいかもしれません。たくさんの言葉を組み合わせたように聞こえます。この物は、あの物を通してこの事を知っていますが、他の物は知りません。実際の例を使用すると、これらの関係を視覚化するのに役立ちます。
たとえば、宇宙飛行士が何人かいるとします。長年にわたって、これらの宇宙飛行士は多くの植物を訪問します。ミッションごとに 1 つの惑星。したがって、各ミッションには1人の宇宙飛行士と1つの惑星がおり、多くの惑星には多くの宇宙飛行士が訪れます。
Flask では、Astronaut と Planet の関係は多対多の関係ですが、Astronaut と Mission、および Planet と Mission の関係はどちらも 1 対多です。 3 つのモデルがあります。 ミッション モデルは、宇宙飛行士 モデルと 惑星 モデル間の 結合テーブル として動作します。クラスはデータ間の関係を定義 (またはモデル化) するため、モデルと呼ばれます。
では、これらの関係をどのようにコーディングすればよいでしょうか?
そこから両方の関係を構築するので、結合テーブルから始めるのが最も簡単だと思います。
class Mission(db.Model): __tablename__ = 'missions' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String)
これがミッション クラスの始まりです。
私たちは、各ミッションに1人の宇宙飛行士がいることを知っています:
astronaut = db.relationship
db.relationship は、2 つのモデルが互いにどのように関連するかを定義します。
これを Astronaut クラスに接続しましょう....
astronaut = db.relationship('Astronaut')
そして次に、2 つのモデル (Astronaut と Mission) 間の双方向の関係を追加しましょう:
astronaut = db.relationship('Astronaut', back_populates="missions")
素晴らしい仕事です! Mission は Astronaut と Planet の両方の関係を保持しているため、planet についても同じことを行いましょう:
planet = db.relationship('Planet', back_populates="missions")
これは関係を含むミッション クラスです:
class Mission(db.Model): __tablename__ = 'missions' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) astronaut = db.relationship('Astronaut', back_populates="missions") planet = db.relationship('Planet', back_populates="missions")
すごい!戻って手順を見てみましょう: ミッション モデルは、宇宙飛行士 モデルと 惑星 の間の _join テーブル として動作します。モデル。_
したがって、宇宙飛行士とミッション、惑星とミッションをリンクする必要があります。宇宙飛行士から始めましょう:
missions = db.relationship('Mission', back_populates="astronauts")
ここではミッションが複数形になっています。なぜなら、宇宙飛行士は複数のミッションに挑戦するからです (できれば!)。
次に、Planet ですが、これは似ているはずです:
missions = db.relationship('Mission', back_populates="planets")
すごいですね!すべてをまとめると、次のようになります:
class Planet(db.Model): __tablename__ = 'planets' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) distance_from_earth = db.Column(db.Integer) nearest_star = db.Column(db.String) missions = db.relationship('Mission', back_populates="planet") class Astronaut(db.Model): __tablename__ = 'astronauts' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) field_of_study = db.Column(db.String) missions = db.relationship('Mission', back_populates="astronaut") class Mission(db.Model): __tablename__ = 'missions' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) astronaut = db.relationship('Astronaut', back_populates="astronauts") planet = db.relationship('Planet', back_populates="missions")
最後に、外部キーをミッション テーブルに追加しましょう。外部キーは、2 つをリンクする別のデータベース内の項目を参照する整数です。たとえば、ミッション テーブルでは宇宙飛行士 1 の外部キーは 1 であるため、その列に数字 1 が表示されるたびに、それがその宇宙飛行士に適用されることがわかります。
Mission はすべての関係を担当するため、外部キーを必要とする唯一のクラスです。
class Mission(db.Model, SerializerMixin): __tablename__ = 'missions' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) astronaut_id = db.Column(db.Integer, db.ForeignKey('astronauts.id')) planet_id = db.Column(db.Integer, db.ForeignKey('planets.id')) astronaut = db.relationship('Astronaut', back_populates="missions") planet = db.relationship('Planet', back_populates="missions") serialize_rules = ('-astronaut.missions', '-astronaut.planets')
素晴らしい仕事です!モデル間にいくつかの関係を設定しました。コーディングしてくれてありがとう!
出典: このラボを提供してくれた Flatiron School に感謝します。クラス名「科学者」を「宇宙飛行士」に変更しました。
以上がFlask でのモデルの関係の探索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このチュートリアルでは、Pythonを使用してZIPFの法則の統計的概念を処理する方法を示し、法律の処理時にPythonの読み取りおよび並べ替えの効率性を示します。 ZIPF分布という用語が何を意味するのか疑問に思うかもしれません。この用語を理解するには、まずZIPFの法律を定義する必要があります。心配しないでください、私は指示を簡素化しようとします。 ZIPFの法則 ZIPFの法則は単に意味します。大きな自然言語のコーパスでは、最も頻繁に発生する単語は、2番目の頻繁な単語のほぼ2倍の頻度で表示されます。 例を見てみましょう。アメリカ英語の茶色のコーパスを見ると、最も頻繁な言葉は「thであることに気付くでしょう。

この記事では、Pythonライブラリである美しいスープを使用してHTMLを解析する方法について説明します。 find()、find_all()、select()、およびget_text()などの一般的な方法は、データ抽出、多様なHTML構造とエラーの処理、および代替案(SEL

ノイズの多い画像を扱うことは、特に携帯電話や低解像度のカメラの写真でよくある問題です。 このチュートリアルでは、OpenCVを使用してPythonの画像フィルタリング手法を調査して、この問題に取り組みます。 画像フィルタリング:強力なツール 画像フィルター

PDFファイルは、クロスプラットフォームの互換性に人気があり、オペレーティングシステム、読み取りデバイス、ソフトウェア間でコンテンツとレイアウトが一貫しています。ただし、Python Plansing Plain Text Filesとは異なり、PDFファイルは、より複雑な構造を持つバイナリファイルであり、フォント、色、画像などの要素を含んでいます。 幸いなことに、Pythonの外部モジュールでPDFファイルを処理することは難しくありません。この記事では、PYPDF2モジュールを使用して、PDFファイルを開き、ページを印刷し、テキストを抽出する方法を示します。 PDFファイルの作成と編集については、私からの別のチュートリアルを参照してください。 準備 コアは、外部モジュールPYPDF2を使用することにあります。まず、PIPを使用してインストールします。 ピップはpです

このチュートリアルでは、Redisキャッシングを活用して、特にDjangoフレームワーク内でPythonアプリケーションのパフォーマンスを向上させる方法を示しています。 Redisのインストール、Django構成、およびパフォーマンスの比較をカバーして、Beneを強調します

この記事では、深い学習のためにTensorflowとPytorchを比較しています。 関連する手順、データの準備、モデルの構築、トレーニング、評価、展開について詳しく説明しています。 特に計算グラップに関して、フレームワーク間の重要な違い

データサイエンスと処理のお気に入りであるPythonは、高性能コンピューティングのための豊富なエコシステムを提供します。ただし、Pythonの並列プログラミングは、独自の課題を提示します。このチュートリアルでは、これらの課題を調査し、グローバルな承認に焦点を当てています

このチュートリアルでは、Python 3にカスタムパイプラインデータ構造を作成し、機能を強化するためにクラスとオペレーターのオーバーロードを活用していることを示しています。 パイプラインの柔軟性は、一連の機能をデータセットに適用する能力にあります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
