Python >> Python tutorial >  >> Python

Hvordan kontrollerer man, om request.GET var er Ingen?

Tjek først, om request.GET dict indeholder en parameter ved navn q . Du gør allerede dette ordentligt:

if request.method == 'GET' and 'q' in request.GET:

Derefter skal du kontrollere, om værdien af ​​q er enten None eller den tomme streng. For at gøre det kan du skrive dette:

q = request.GET['q']
if q is not None and q != '':
    # Do processing here

Bemærk, at det ikke er nødvendigt at skrive request.GET.get('q', None) . Vi har allerede tjekket for at sikre, at der er en 'q' tasten inde i request.GET dict, så vi kan få fat i værdien direkte. Den eneste gang du skal bruge get metoden er, hvis du ikke er sikker på, at en diktat har en bestemt nøgle og vil undgå at rejse en KeyError-undtagelse.

Der er dog en endnu bedre løsning baseret på følgende fakta:

  • Værdien None evalueres til False
  • Den tomme streng '' evalueres også til False
  • Enhver ikke-tom streng evalueres til True .

Så nu kan du skrive:

q = request.GET['q']
if q:
    # Do processing here

Se disse andre ressourcer for flere detaljer:

  • Python:Truth Value Testing
  • Python:dict.get