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

时间:2017-10-22 15:16:26

标签: python flask parameter-passing

我试图将从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)

他们是否在烧瓶中传递参数而不返回错误,最好不使用全局变量。

2 个答案:

答案 0 :(得分:3)

您可以允许用户通过网址将值传递给该功能,也可以在Random内拨打Help

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

或者,通过调用Random中的函数Help

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

答案 1 :(得分:3)

哇...我强烈建议您阅读有关Flask的一些教程 - 但只是为了快速解释一下。

首先,您从未申报过您的应用。

其次,你不应该(通常)直接调用你的@ app.route函数。一般的想法是你通过一个网址(在你的情况下/帮助)来达到这个功能。

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

顺便说一下,只需要一些PEP8来亮化日期功能/变量名称应该是小写的,并且不要使用与模块名称相同的名称(例如随机)