在flask @ app.route('/ page')之间传递参数

Jay*_*ayE 1 python parameter-passing flask

我试图将我从Random()获得的值传递给Help(),但它返回为AttributeError:'NoneType'对象没有属性'app'。

from flask import Flask, request, render_template
from random import randint

@app.route('/help')
def Help(Random):
   PassingRandom = Random

   return render_template("help.html", PassingRandom=PassingRandom)

def Random():
   Value = randint(0,100)
   return Value

MyValue = Random()

if __name__ == "__main__":
   Help(MyValue)
   app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

它们是烧瓶内传递参数而不返回错误的一种方法,最好是不使用全局变量。

Aja*_*234 8

您可以允许用户通过 URL 将值传递给函数,也可以调用Randominside Help

@app.route('/help/<random>')
def Help(random):
    return render_template("help.html", PassingRandom=random)
Run Code Online (Sandbox Code Playgroud)

或者,通过调用函数RandomHelp

@app.route('/help')
def Help():
   PassingRandom = Random()
   return render_template("help.html", PassingRandom=PassingRandom)
Run Code Online (Sandbox Code Playgroud)


mao*_*r10 5

哇...我强烈建议您阅读有关Flask的一些教程,但仅作简单说明。

首先,您从未声明过您的应用程序。

其次,您不应该(通常)直接调用@ app.route函数。一般的想法是,您可以通过URL(在您的情况下为/ help)来访问功能。

如果您希望在整个应用程序中使用相同的随机值,那么可以,全局变量就是答案。如果您希望每次访问/ help时都更改它,只需从那里随机调用。

顺便说一句,只是一点点PEP8可以使白天的功能/变量名称变亮,应该小写,并且不要使用与模块名称相同的名称(例如,Random)