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対多関連クエリのページングエラー問題の解決方法

推薦する

mysql5.7.21 utf8 エンコーディングの問題と Mac 環境での解決方法

1. 目標: mysql の character_set_server の値を latin1 から ...

Docker ケース分析: Redis サービスの構築

目次1 マウントディレクトリとファイルを作成する2 Redisイメージを取得する3 コンテナを作成し...

まだ*を選択しますか?

アプリケーションが牛のように遅い理由は数多くあります。ネットワーク、システム アーキテクチャ、または...

JavaScript で右クリック メニューを統合する layim のサンプル コード

目次1. 効果の実証2. 実装チュートリアル3. 最後に、完全なコードを添付します4. その他の右ク...

Docker を使って LEMP 環境を素早く構築する方法の例

LEMP(Linux + Nginx + MySQL + PHP)は、基本的に今日のWeb開発者にと...

JavaScript ステートメントの一般的な for ループの詳細な説明

JavaScript には、for、for in、for of、forEach ループなど、多くのル...

CSSブレンドモードとSVGを使用して、製品画像の色を動的に変更します。

数日前、Codepen で @Kyle Wetton が書いた、CSS ブレンディング モードと S...

Docker で Elasticsearch Kibana と ik Word Segender をデプロイする詳細な説明

esインストール docker pull elasticsearch:7.4.0 # -d : バッ...

Linux システムの /etc/fstab ファイルの詳細な解釈

序文 [root@localhost ~]# cat /etc/fstab # #/etc/fsta...

Linux 脆弱性スキャンツール lynis の使用分析

はじめに: Lynis は、徹底的なセキュリティ スキャンを実行できる Unix システム用のセキュ...

Mysql の主キー インデックスと非主キー インデックスの違いについて簡単に説明します。

目次インデックスとは何か主キーインデックスと通常のインデックスの違いインデックスにはどのデータ構造が...

Vueは携帯電話のカメラとアルバムを呼び出す機能を実装します

この記事では、携帯電話のカメラとアルバムにアクセスするためのVueの具体的なコードを参考までに共有し...

jQueryはシンプルなカルーセル効果を実装します

みなさんこんにちは。今日はカルーセルの実装についてお話しします。私が作成したカルーセルの効果は次のと...

Vue2.x および Vue3.x のカスタム命令の使用方法とフック関数の原理を理解する

目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...

JS WebSocketを使用して簡単なチャットを実装する方法

目次ショートポーリングロングポーリングウェブソケットコミュニケーションの原則シンプルな1対1チャット...