无法使用flask

时间:2019-02-06 00:14:36

标签: python html

我有一个HTML索引页面,该页面将输入数据发送到python脚本,该脚本处理数据并将其输出到第二HTML页面。在本地主机上,该过程运行正常,并且可以根据需要显示数据。但是,当我尝试在线托管进程时,出现错误消息,指出找不到URL。如果有帮助,我正在使用Heroku。

对于任何可怜的术语,请提前道歉。我才刚刚开始学习如何编码。

第一个HTML

<form action = "https://webaddress/result" method = "POST">
    <h1> Enter info: </h1>
    <input type="text" name="info">

    <input type="submit" value="Submit"/>
</form>

Python:

from flask import Flask, render_template, request
from bs4   import BeautifulSoup
import requests

# https://doi.org/10.2118/21513-MS
app = Flask(__name__)

@app.route('/')
def student():
    return render_template('Trial.html')

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

if __name__ == '__main__':
   app.run(debug = True)

第一个HTML中的输入将被发送到python节,在输出到result.html之前,将其分解并重新排列(省去了那部分,因此python代码不会太长)。这在使用http://localhost:5000/http://localhost:5000/result的本地主机上起作用。

在Heroku上运行它时,出现错误消息:

未找到

在此服务器上找不到请求的URL /结果。

更新:问题已解决。

2 个答案:

答案 0 :(得分:0)

在了解您的results()函数时遇到一些问题。 output在任何地方都没有定义,type根本没有使用。

我相信您的action参数不正确。

尝试:<form action="/result" method = "POST">

以下是我为您共同破解的内容的工作版本:

from flask import Flask, render_template, request

app = Flask(__name__)


@app.route('/', methods=['GET'])
def home():
    return '''
    <form action="/result" method = "POST">
    <h1> Enter info: </h1>
    <input type="text" name="info">

    <input type="submit" value="Submit"/>

    </form>
    '''

@app.route('/result',methods = ['POST', 'GET'])
def result():
    if request.method == 'POST':
        type = ''
        if 'info' in request.form:
            result = request.form['info']

    return result


if __name__ == '__main__':
    app.run(debug=True, port=8888, host='0.0.0.0')

答案 1 :(得分:0)

您的表单引用了/result(无扩展名.html),但您的路线却是面向/result.html(扩展名是 with )。尝试从您的路线中删除.html

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