Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 6158
Hei.
Python 3.

Kode

@app.route("/command", methods=['GET'])
def get(arg1, arg2)
   if None in (arg1, arg2)
      if request.method == 'GET':
        arg1=request.args.get(arg1)
        arg2=request.args.get(arg2)
Jeg er usikker på hvordan jeg får dette til, ettersom funksjonen ikke kjører hvis ikke arg1 og arg2 eksisterer. Hensikten med dette er å lage en funksjon som fungerer både med GET requests og ved å kalles i skriptet.

Jeg har også prøvd å:

Kode

@app.route("/command", methods=['GET'])
def get(*args, **kwargs):
 if None not in request.method:
  if request.method == 'GET':
   arg1=request.args.get("arg1")
   arg2=request.args.get("arg2")
  else:
   arg1=kwargs.get('arg1', None)
   arg2=kwargs.get('arg2', None)
Et problem jeg har her er at get() kjører uavhengig av om jeg kaller den eller ikke, og da er det kodelinja under else: som kjører. Hvordan hindrer jeg den i å kjøre med mindre def blir kallet?
Usikker på om jeg forstår deg rett, men du kan sette default-verdier som brukes hvis funksjonen kalles uten det aktuelle parameteret.

Kode

def get(arg1, arg2=None):
    print(arg1)
    if arg2:
        print(arg2)

get("Hei")   # Helt i orden
Sist endret av Realist1; 19. desember 2020 kl. 18:31.
Jupp

Kode

def get(arg1=None,arg2=None):
    if None in (arg1, arg2):
       arg1=request.args.get("arg1")
       arg2=request.args.get("arg2")
    if None not in (arg1, arg2):
       foobar(arg1, arg2)
Du kan da også gjøre dette på begge parameterne, hvis du vil tillate at funksjonen kalles uten noen argumenter også.

Kode

def get(arg1=None, arg2=None):
    if not (arg1 or arg2):
        print("Ingen argumenter angitt")
    elif not arg1:
        print(f"arg1 ikke angitt. arg2={arg2}")
    elif not arg2:
        print(f"arg2 ikke angitt. arg1={arg1}")
    else:
        print(f"arg1={arg1}")
        print(f"arg2={arg2}")

get() 
# > Ingen argumenter angitt

get("hei")
# > arg2 ikke angitt. arg1=hei

get(arg2="hei")
# > arg1 ikke angitt. arg2=hei

get("hei", "du")
# > arg1=hei
# > arg2=du
Edit:
Ser du fikk det til selv også, ja.
Sist endret av Realist1; 19. desember 2020 kl. 18:43.