Archívum - Ápr 30, 2023
Flask - nem értem
Van egy ilyen primitív program:Ha http://localhost/inc formában szólítom meg, akkor hibátlanul visszaad nullát (vagy amit felül beállítottam a counter értékeként).
Ellenben, ha kap egy x paramétert: http://localhost/inc?x=1, akkor internal server error az eredmény. A valódi hiba: "local variable 'count' referenced before assignment
Ez valami flask hülyeség, nem is az a kérdés, hogyan javítsam ki, csak arra nem találok értelmes választ, hogy ha nem akarom módosítani, akkor miért látja mégis?
Mert a flasknek van olyanja, hogy app context, meg request context és amikor a http get-re válaszol, akkor az utóbbi él, normális, hogy nem tud mit kezdeni a contexten kívül definiált változókkal. De akkor read only miért látja?
 ■ from flask import Flask, request
app = Flask(__name__)
counter = 0
print(f"....{counter}....")
@app.route("/inc")
def inc():
    x=request.args.get("x")
    print(f"Counter: {counter}")
    if x:
        count += int(x)
    return f"+++ {counter} +++"
if __name__ == "__main__":
    app.run()
Ellenben, ha kap egy x paramétert: http://localhost/inc?x=1, akkor internal server error az eredmény. A valódi hiba: "local variable 'count' referenced before assignment
Ez valami flask hülyeség, nem is az a kérdés, hogyan javítsam ki, csak arra nem találok értelmes választ, hogy ha nem akarom módosítani, akkor miért látja mégis?
Mert a flasknek van olyanja, hogy app context, meg request context és amikor a http get-re válaszol, akkor az utóbbi él, normális, hogy nem tud mit kezdeni a contexten kívül definiált változókkal. De akkor read only miért látja?
     


