亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Flask 將 JavaScript 連接到 Python 腳本

使用 Flask 將 JavaScript 連接到 Python 腳本

胡說叔叔 2022-07-12 14:51:00
我自己創建了一個完全使用 HTML/CSS 的網站。還對事件使用 Javascript(單擊按鈕,...)。現在我想用它連接一個python腳本,更重要的是,將python的結果返回到我的網站并在那里顯示(使用)它們??紤]這樣的事情:帶有輸入和按鈕的網站。如果您單擊按鈕,則應該運行 python 腳本,如果輸入是奇數或偶數,則返回(當然,對于這種特定情況,您不需要 python,但我想這樣做)根據我的研究,我相信 Flask 是做它的庫(?),但我真的不知道該怎么做。我發現的例子很少。如果有人可以實現上述示例或告訴我如何正確執行,我將不勝感激。我知道網上已經有一些關于這個概念的問題,但正如我所說,例子很少。
查看完整描述

2 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

你說 Flask 是一個很好的解決方案是對的,到處都有例子和教程。如果您想要的只是在按下按鈕時運行特定功能并在 javascript 中返回某些內容,那么我在下面提供了一個快速示例。


# app.py

from flask import Flask, render_template

from flask import jsonify


app = Flask(__name__)


# Display your index page

@app.route("/")

def index():

    return render_template('index.html')


# A function to add two numbers

@app.route("/add")

def add():

    a = request.args.get('a')

    b = request.args.get('b')

    return jsonify({"result": a+b})


if __name__ == "__main__":

    app.run(host='0.0.0.0', port=80)

然后可以運行它python app.py并確保您的 index.html 位于同一目錄中。然后您應該可以訪問http://127.0.0.1/并查看您的頁面加載情況。


這實現了一個添加兩個數字的函數,這可以通過調用http://127.0.0.1/add?a=10&b=20在您的 javascript 中調用。這應該返回{"result": 30}。


您可以使用下面的代碼在您的 javascript 中獲取此代碼,并將此代碼放在單擊回調的按鈕中。


let first = 10;

let second = 20;

fetch('http://127.0.0.1/add?a='+first+'&b='+second)

  .then((response) => {

    return response.json();

  })

  .then((myJson) => {

    console.log("When I add "+first+" and "+second+" I get: " + myJson.result);

  });


這應該是最基本的基礎,但是一旦您可以將數據提交到 Flask 并取回數據,您現在就有了一個可以在 Python 中運行的接口。


編輯:完整的前端示例


https://jsfiddle.net/4bv805L6/


查看完整回答
反對 回復 2022-07-12
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

我非常感謝您的幫助和所花費的時間。但是您的回答并沒有以我需要的方式幫助我。那時我不知道該怎么做,但自從我前段時間想出來(我看了一個 youtube 視頻......)我想我在這里分享我的解決方案(貼兩個字符串):


那是app.py:


from flask import Flask, render_template, request


app = Flask(__name__)


@app.route('/stick', methods=['GET', 'POST'])

def stick():

    if request.method == 'POST':

        result = request.form['string1'] + request.form['string2']

        return render_template('index.html', result=result)

    else:   

        return render_template('index.html')


if __name__ == "__main__":

    app.run()

還有那個 index.html(放在文件夾templates中):


<!DOCTYPE html>

<html>

<body>

    <h3> Stick two strings </h3>

    <form action="{{ url_for('stick') }}" method="post">

            <input type="text" name="string1">

            <input type="text" name="string2">

            <input type="submit" value="Go!">

            <p id="result"></p>

    </form>

<script>


document.getElementById("result").innerHTML = "{{result}}"


</script>

</body>

</html>

在python app.py的終端類型中,它應該可以工作。


查看完整回答
反對 回復 2022-07-12
  • 2 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號