我正在尝试使用FLASK完成一个外汇货币转换器,但是我的代码无法正常工作。
它允许用户输入,然后在我点击后提交显示Method Not Allowed的下一页
所请求的URL不允许使用该方法。
-Update,现在只要我尝试拉起不加载的Index2.html,它就会转到操作页面。我不确定为什么它不允许我继续进行。
-我正在尝试保存三个输入,将它们添加到列表中,然后将其转换为美元金额
-Page刷新到操作页面,这不是预期的

Index.html file
        ><!DOCTYPE html>
<html>
<body>

<h2>HTML Forms</h2>

<form action="/index2.html", method="Post">
  <label for="C1" name= "C1"> Converting From:</label><br>
  <input type="text" id="C1" name="C1"><br>
  <label for="C2">Converting To:</label><br>
  <input type="text" id="C2_to" name="C2_to"><br>
  <label for="amt">Amount:</label><br>
  <input type="text" id="amt" name="amt"><br>
  <br>
  <input type="submit" value="Submit">
</form>

app.py文件
    from flask import Flask, render_template,request, redirect, session
from forex_python.converter import CurrencyCodes, CurrencyRates



app = Flask(__name__)
app.config["secret key"]="yeah"
app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False

responses_key= "responses"

@app.route("/")
def show_form():


    return render_template("Index.html" )

@app.route("/index2")
def show_form2():


    return render_template("index2.html" )

T= CurrencyRates()

@app.route("/Index2", methods=["POST"])
def save_answer():
    line2 = request.data.get("C1", "C2", int("amt"))
    responses = session[responses_key]
    responses.append(line2)
    responses = session[responses]

    rate = T.convert(line2[0],line2[1],int(line2[2]))
    return rate,render_template("/Index2.html", rate="response")

最佳答案

由于未共享index2.htlm,因此我创建了一个简单的1衬板index2.html来显示转换。 PFB代码:
app.py:

from flask import Flask, render_template, request, redirect, session, url_for
from forex_python.converter import CurrencyCodes, CurrencyRates

app = Flask(__name__)
app.config["secret key"] = "yeah"
app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False

responses_key = "responses"

@app.route('/', methods = ['GET', 'POST'])
def index():
    return render_template('Index.html')

T = CurrencyRates()

@app.route("/conversion", methods = ['GET', 'POST'])
def conversion():
    if request.method == 'POST':
        C1 = request.form.get('C1', None)
        C2_to = request.form.get('C2_to', None)
        amt = request.form.get('amt', None)
        rate = T.convert(C1, C2_to, int(amt))
        print(C1, C2_to, amt, rate)
        details = {'C1': C1, 'C2_to': C2_to, 'amt': amt, 'rate': rate}
    return render_template("Index2.html", details=details)

if __name__ == '__main__':
    app.run(host='xx.xx.xx.xx', debug=True)
    app.run(debug=True)
Index.html:
<!DOCTYPE html>
<html>
<body>

<h2>HTML Forms</h2>

<form action="{{ url_for('conversion') }}" method="post">
<label for="C1" name= "C1"> Converting From:</label><br>
<input type="text" id="C1" name="C1"><br>
<label for="C2_to" name= "C2_to">Converting To:</label><br>
<input type="text" id="C2_to" name="C2_to"><br>
<label for="amt">Amount:</label><br>
<input type="text" id="amt" name="amt"><br>
<br>
<input type="submit" value="Submit">
</form>
Index2.html:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <p> Conversion of {{ details.amt }} {{ details.C1 }} to {{ details.C2_to }} is: {{ details.rate }}</p>
</body>
</html>
输出:
主页:
python - Python外汇计算器不符合-LMLPHP
转换页面:
python - Python外汇计算器不符合-LMLPHP

10-04 21:18