Flask Value错误视图功能未返回响应

错误信息:

Traceback (most recent call last):

File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__

return self.wsgi_app(environ, start_response)

File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app

response = self.make_response(self.handle_exception(e))

File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception

reraise(exc_type, exc_value, tb)

File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app

response = self.full_dispatch_request()

File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1478, in full_dispatch_request

response = self.make_response(rv)

File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1566, in make_response

raise ValueError('View function did not return a response')

ValueError: View function did not return a response

而我的代码:

#Used for starting the flask server

from flask import Flask #Import flask mains

from flask import request #Import flask requests

from flask import render_template #Import flask render templates

import json, urllib #import api modules

import time #Imporing time in darlek voice

app = Flask(__name__)

@app.route('/')

def my_form():

return render_template("my-form.html") #Set render template

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

def my_form_post():

openwindow_at = float(request.form['open']) #When it reached ? open window

if request.form['scale'] == "kelvin": #Change figures

print("Do nothing") #Debug info

elif request.form['scale'] == "celcius":

openwindow_at = openwindow_at + int(273.15) #celcius to kelvin

elif request.form['scale'] == "fah": #Fah to kelvin

openwindow_at = (openwindow_at + 459.67) * 5 / 9 #F to kelvin

text = request.form['text'] #Get info from First page

url = "http://api.openweathermap.org/data/2.5/weather?q=" + text #Download the json

response = urllib.urlopen(url) #Download Json

data = json.loads(response.read()) #Parse json

print("Current Weather in " + text + " " + data['weather'][0]['description']) #Debug infomation

print("Temp: " + str(data['main']['temp'])) #Print temp

if data['weather'][0]['description'].find("rain") >= 0: #Check The weather

print("Test")

return "Shutting your window"

Close the window(Tom's job)

if float(data['main']['temp']) >= openwindow_at:

return "Opening your window"

#open the window (Tom's job)

if __name__ == '__main__':

app.debug = True #Uncomment to enable debugging

app.run() #Run the Server

并且my-form.html是:

<!DOCTYPE html>

<html lang="en">

<body>

<h1>Enter a place</h1>

<form action="." method="POST">

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

<input type="submit" name="my-form" value="Send">

<h1>Options</h1>

<p>Open window if temp is greater than<input type="textbox" name="open"></input> <input type="radio" name="scale" value="kelvin">Kelvin</input><input type="radio" name="scale" value="celcius">Celcius</input><input type="radio" name="scale" value="fah">FarenHeit</input></p>

</form>

</body>

</html>

如果我在其中放置一个while循环,它将永远加载。

然后输入比当前页面永久加载的更高的温度。如果我使用上面列出的当前代码,则会出现错误。

回答:

以下内容不返回响应:

你必须返回类似return afunction()或的内容return 'a string'

这样可以解决问题

以上是 Flask Value错误视图功能未返回响应 的全部内容, 来源链接: utcz.com/qa/408911.html

回到顶部