2017-10-22 9 views
0

Random()からHelp()に渡す値を渡そうとしていますが、AttributeError: 'NoneType'オブジェクトに 'app' 。フラスコ@app.route( '/ page')の間でパラメータを渡す

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) 

エラーを返さずに、好ましくはグローバルを使用せずにパラメータを渡すフラスコ内の方法です。

+0

いくつかの事と同じ名前を使用しないでくださいを明るくするPEP8の少しだけ。あなたは関数 'Random'を' PassingRandom'として渡していますが、関数の出力ではありません。あなたは 'PassingRandom = Random()'を実行する必要があります。第二に、あなたはappを定義していません - 'app = Flask(__ name __)' –

答えて

1

あなたは、ユーザーがURLを経由して関数に値を渡すことができるようにするか、またはあなたがHelpRandomを呼び出すことができます。

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

あるいは、Helpで機能Randomを呼び出すことにより:

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

おっぱい...私は、Flaskについていくつかのチュートリアルを読むことを強くお勧めします。しかし、簡単な説明をするだけです。

まず、あなたのアプリを宣言したことはありません。

第2に、@ app.route関数を(一般的に)呼び出すことは想定されていません。一般的な考え方は、あなたのURL(あなたのケース/ヘルプ)を通って機能に到達することです。

アプリ全体で同じ乱数が必要な場合は、グローバル変数が答えです。あなたがアクセス/助けのたびにそれを変更したいのであれば、ここからランダムを呼び出してください。ところで

、日 - 機能/変数名は小文字であるべきであり、モジュール名(例えばランダム)

関連する問題