VueとFlask間の通信の実装

VueとFlask間の通信の実装

axiosをインストールして通信を実装する

ここでは、axios を使用して Vue フロントエンドと Flask バックエンドを接続し、AJAX リクエストを使用して通信します。次のコマンドを使用してインストールします

npm インストール axios

axios の使用形式:

'axios' から axios をインポートします。
  エクスポートデフォルト{
    データ: 関数 () {
      戻る {
        サーバーレスポンス: 'res_test'
      };
    },
    メソッド: {
      取得データ() {
        // 対応する Python インターフェースを設定します。ここでは localhost:5000 を使用します。
        定数パス = 'http://127.0.0.1:5000/getMsg';
        // ここでは、返されたデータを表すために res => を使用する必要があります axios.get(path).then(res => {
          // ここでサーバーはレスポンスを json オブジェクトとして返します // 返されたデータに .data 経由でアクセスし、次に .variable name 経由でアクセスします // response.data 経由でキー値を直接取得できます
          var msg = res.data.msg;
          this.serverResponse = msg; // これを直接ポインターとして使用できないため、then ポインターに代入してから alter('Success' + response.status + ',' + response.data + ',' + msg); // 成功後にプロンプ​​トを表示します }).catch(error => {
          コンソールエラー(エラー);
        });
      }
    },
  }

コードとデモ

フロントエンドコード

./components/HelloWorld.vue ファイルを書き換えます。コードは次のとおりです。

<!-- html 部分 -->
<テンプレート>
  <div>
    <span>{{ serverResponse }}</span>
    <!--{{}} は、JavaScript でこれに割り当てられた値を参照するために使用されます-->
    <button @click="getData">データを取得</button>
  </div>
</テンプレート>
<!-- js 部分 -->
<スクリプト>
  'axios' から axios をインポートします。
  エクスポートデフォルト{
    データ: 関数 () {
      戻る {
        サーバーレスポンス: 'res_test'
      };
    },
    メソッド: {
      取得データ() {
        // 対応する Python インターフェースを設定します。ここでは localhost:5000 を使用します。
        定数パス = 'http://127.0.0.1:5000/getMsg';
        axios.get(path).then(res => {
          // ここでサーバーはレスポンスを json オブジェクトとして返します // 返されたデータに .data 経由でアクセスし、次に .variable name 経由でアクセスします // response.data 経由でキー値を直接取得できます
          var msg = res.data.msg;
          this.serverResponse = msg; // これを直接ポインターとして使用できないため、then ポインターに代入してから alter('Success' + response.status + ',' + response.data + ',' + msg); // 成功後にプロンプ​​トを表示します }).catch(error => {
          コンソールエラー(エラー);
        });
      }
    },
  }
</スクリプト>
<!-- css 部分 -->
<!-- CSS をこのコンポーネントのみに制限するために "scoped" 属性を追加します -->
<スタイルスコープ>
  h1,
  h2 {
    フォントの太さ: 標準;
  }

  ul {
    リストスタイルタイプ: なし;
    パディング: 0;
  }

  li {
    表示: インラインブロック;
    マージン: 0 10px;
  }

  {
    色: #42b983;
  }
</スタイル>

ここでの主な実装は、ボタンをクリックしてサーバーと対話し、データを取得してそれをフロントエンドに送り返し、取得したデータを使用してフロントエンドを再レンダリングすることです。

図1

上記のページを取得したら、「日付を取得」ボタンをクリックすると、バックエンドに GET リクエストが送信されます。バックエンド サーバーはリクエストを監視した後、対応するデータを返します。

図2

クライアントコード

FlaskからFlaskをインポート
Flaskからjsonifyをインポート
flask_corsからCORSをインポートする

アプリ = Flask(__name__)
cors = CORS(アプリ、リソース={r"/getMsg": {"origins": "*"}})


@app.route('/')
hello_world() を定義します:
    'test!' を返します。

# 127.0.0.1:5000/getMsg リクエストをリッスンします @app.route('/getMsg', methods=['GET', 'POST'])
デフホーム():
    レスポンス = {
        'msg': 'こんにちは、Python!'
    }
    応答を返す


__name__ == '__main__' の場合:
    アプリの実行()

Vue と Flask の通信の実装に関するこの記事はこれで終わりです。Vue と Flask の通信に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue がコンポーネント通信を実装する 8 つの例
  • Vueコンポーネント間の通信の非常に詳細な要約
  • Vue3.xはコンポーネント通信にmitt.jsを使用します
  • Vue はコンポーネント間の通信をどのように実装しますか?
  • Vueコンポーネント通信方法事例まとめ

<<:  geoip を使用して nginx で地域を制限する方法

>>:  MySQL 1対多関連クエリのページングエラー問題の解決方法

ブログ    

推薦する

MySQLのどのフィールドがインデックスに適しているかについての簡単な説明

目次1 データベース インデックスを作成するための一般的なルールは次のとおりです。 2. 数千万件の...

Vue3 の emitting と attr の違いの分析

目次結論は実践分析拡張機能要約する結論は親コンポーネントでカスタム イベントが定義されている場合、子...

さまざまなReact状態マネージャーの解釈と使用方法

まず、状態マネージャーとは何か、そしてそれが何をするのかを知る必要があります。複数のページで同じプロ...

Nginx 構成 PC サイトとモバイル サイトの分離によるリダイレクトの実現

PCサイトとモバイルサイトの分離設定にはnginxを使います。私のPCサイトとモバイルサイトは、SE...

nginx rewriteを使用してURLをリダイレクトする方法

最近仕事でnginxの設定を変更する必要が頻繁にあり、nginxでrewriteを使用する方法を学び...

MySQL でパーセンテージと最初の数パーセントを表示する方法

目次必要とする実装コードデータベース数日前、友人からこれを書くのを手伝ってほしいと頼まれました。ただ...

MySQLの水平および垂直テーブルパーティションの説明

前回の記事で、MySQL ステートメントの最適化には限界があると述べました。MySQL ステートメン...

InnoDB のアーキテクチャと機能の詳細な説明 (InnoDB ストレージ エンジンの読書メモの要約)

背景スレッド•マスタースレッドコア バックグラウンド スレッドは主に、バッファー プール データをデ...

Alibaba Cloud Serverにプログラムをデプロイし、ドメイン名を使用して直接アクセスする方法の詳細な説明

何もすることがなかったので、学習用に最も安いAlibaba Cloudサーバーを購入しました。年間3...

Trash-Cli: Linux のコマンドラインごみ箱ツール

ゴミ箱は Linux ユーザー、Windows ユーザー、Mac ユーザーにとって非常に一般的なので...

MySQL ストアド プロシージャの作成、呼び出し、管理の詳細な説明

目次ストアドプロシージャの概要ストアド プロシージャを使用する理由は何ですか?ストアドプロシージャの...

CentOS6.8 中国語/英語環境切り替えチュートリアル図

1. はじめに英語に慣れていない人は、システムを英語から中国語に変更したいかもしれません。一方、クラ...

JavaScript ウェブページ入門開発詳細説明

パート3: ❤バックエンドデータ受信を見落とす3つの方法❤ (おすすめ集)パート 2: Web フォ...

一般的なテーブルコンポーネントの Vue カプセル化の完全な手順記録

目次序文テーブル コンポーネントをカプセル化する必要があるのはなぜですか?ステップ1: 共通コンポー...

SQL ファジー クエリ レポート: ORA-00909: パラメータの数が無効です。解決策

あいまいクエリにOracleデータベースを使用する場合、コンソール エラーは次の図に表示されます。理...