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

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

對 Flask 的字符串 POST 請求

對 Flask 的字符串 POST 請求

肥皂起泡泡 2022-07-05 17:14:26
我正在嘗試實現一個簡單的儀表板Flask,它將:接受用戶文本輸入,帶有“提交”按鈕。將此用戶輸入發布到燒瓶。Flask 接受這個輸入,對它做一些事情,然后向另一個 API 發出 GET 請求。這個 GET 請求返回數據并以某種方式顯示(可能只是console.log現在)例如,使用星球大戰 API:用戶輸入星球大戰角色的名稱(假設沒有拼寫錯誤)Flask 讀取這個輸入名稱,并將其映射到一個 ID 號,因為Star Wars API接受 ID 號。向 Star Wars API 發送 GET 請求,以獲取完整的角色信息。現在,我們可以只輸入console.log字符信息(例如“身高”、“質量”等)我現在擁有的:app.pyfrom flask import Flask, jsonify, request, render_templateimport randomimport jsonapp = Flask(__name__)@app.route("/")def index():    return render_template('index.html')@app.route("/form_example", methods=["GET", "POST"])def form_example():    if request.method == "POST":        language = request.form("character_name")        starwars_dictionary = {"Luke Skywalker":"1", "C-3PO":"2", "R2-D2": "3"}        # starwars_dictionary is a dictionary with character_name:character_number key-value pairs.        # GET URL is of the form https://swapi.co/api/people/<character_number>    return render_template("index.html")if __name__ == "__main__":    app.run(debug=True)索引.html<!DOCTYPE html><html><head>    <title>py-to-JS</title>    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script></head><body>    <h3>Sample Inputs</h3>    <ul>        <li>Luke Skywalker</li>        <li>C-3PO</li>        <li>R2-D2</li>    </ul>    <form method="POST">        Enter Name: <input type="text" name="character_name"><br>        <input type="submit" value="Submit"><br>    </form></body></html>在這種當前形式中,當我運行應用程序時,它返回“方法不允許;請求的 URL 不允許此方法”。我不確定我錯過了什么;它可能只是沒有正確連接在一起,但我不確定正確的語法是什么。
查看完整描述

1 回答

?
UYOU

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

可能表單正在發布到/端點,因為您沒有聲明表單action。


需要更像:


<form method="POST" action="/form_example">

或者,如果您想變得時髦并使用 Jinja 的url_for功能:


<form method="POST" action="{{ url_for('form_example') }}">

編輯:也就是說,你可以用一個路由函數來處理這個問題:


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

def index():

    if request.method == "POST":

        language = request.form("character_name")

        starwars_dictionary = {"Luke Skywalker":"1", "C-3PO":"2", "R2-D2": "3"}


        # Logic to query remote API ges here.


    else: # Assume method is GET

        return render_template("index.html")

然后進行表單操作{{ url_for('index') }}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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