ugrás a tartalomhoz

Archívum - Ápr 30, 2023

Dátum
  • Minden
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

Flask - nem értem

mind1 valami név · 2023. Ápr. 30. (V), 09.16
Van egy ilyen primitív program:
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()
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?