首页 > 解决方案 > 从烧瓶函数内部返回值

问题描述

我想知道如何在以下示例中返回变量输入:

from flask import Flask, render_template, request
app = Flask(__name__)


@app.route('/', methods=["POST", "GET"])
def index():
   if request.method == "POST":
      req = request.form
      input = req["usr_input"]         
  
   def value():
       return input
   return render_template('index.html')

当我尝试这个时:

from flask import Flask, render_template, request
app = Flask(__name__)


@app.route('/', methods=["POST", "GET"])
def index():
   if request.method == "POST":
      req = request.form
      input = req["usr_input"]         
  
   def value():
       return input
   return render_template('index.html')

input = value()

它不起作用。当我尝试这个时:

from flask import Flask, render_template, request
app = Flask(__name__)


@app.route('/', methods=["POST", "GET"])
def index():
   if request.method == "POST":
      req = request.form
      input = req["usr_input"]         
  
   def value():
       return input
   return render_template('index.html')

input = index()

我收到运行时错误。

RuntimeError: Working outside of request context.
This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.

有谁知道如何返回输入和渲染模板?

标签: pythonflask

解决方案


Flask 路由函数需要一个返回值,并且您设置为 render_template 因此您必须选择一个仅返回

from flask import jsonify, request
from flask import Flask

app = Flask(__name__)
@app.route("/")
def index():
     input_val = request.form.get('input_val', default=0.85, type=float)

     return jsonify({'input_val': input_val})

推荐阅读