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?