операторы выполняются, даже если условие не было проанализировано. Python - PullRequest
0 голосов
/ 08 мая 2020

Мой конкретный фрагмент кода внутри else: блока запускается даже if(condition) равен False

фрагмент кода, который запускает даже условие, является ложным, это страница проверки подлинности Google для моего API календаря. Например, если endDate status, eventID = cal.insert(car, location, user, startDate, endDate) по-прежнему работает, даже если даты недействительны, в конце концов результат не выполняется, и вставка базы данных не выполняется, что хорошо, но я не хочу выполнять вход в Google, даже если даты недействительны.

Но страница Google Auth должна была запускаться после проверки условия if, мне кажется, что она работает до или с оператором if, я запутался.

        #Check if input date is valid
        if(endDate < startDate):
            print("Error, minimum booking is 1 day")
            flash("Error, minimum booking is 1 day")
            return redirect(url_for("book"), code = 307)
        else:
            cal = Calendar()
            with DatabaseUtils() as db:
                #Check car availability
                if(db.checkCarAvail(carid)):
                    person = db.getPerson(session.get('username'))
                    carinfo = db.getCar(carid)
                    user = "{} {}".format(person[3], person[4])
                    car = "{} {}, {} Seats".format(carinfo[1], carinfo[2], carinfo[4])
                    location = carinfo[6]
                    status, eventID = cal.insert(car, location, user, startDate, endDate) #Calendar auth happens here
                    #Check if booking is confirmed for Google Calendar
                    if(status == "confirmed"):
                        #Check if booking record is inserted
                        if(db.insertBooking(userid, carid, int(cost), startDate, endDate, eventID)):
                            #If it is inserted, update car availability
                            if(db.updateCarAvail(carid, avail)):
                                print("Car ID: {} is booked from {} till {}".format(carid, startDate, endDate))
                                flash("Car ID: {} is booked from {} till {}".format(carid, startDate, endDate))
                                return redirect(url_for("home"))
                        else:
                            print("Error, booking failed, try again later.")
                            flash("Error, booking failed, try again later.")
                            return redirect(url_for("home"))
                    else:
                        print("Error, Google Calendar request is canceled, try again later.")
                        flash("Error, Google Calendar request is canceled, try again later.")
                        return redirect(url_for("book"), code = 307)
                else:
                    print("Error, Car ID: {} is not available, try a different car later".format(carid))
                    flash("Error, Car ID: {} is not available, try a different car later".format(carid))
                    return redirect(url_for("home"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...