Задать вопрос
wolverine777
@wolverine777

Почему не работает функция внутри @app.route?

Привет, пытаюсь сделать так чтобы код выявлял наличие\отсутствие требуемых параметров (как минимум одна заглавная буква в логине и одна цифра) в логине и выдавал ошибку если что-то не так. Вjupyter notebook все работает прекрасно а вот во Flask почему-то не работает функция, хотя ошибок не поучаю. Выводится лишь первое условие (ALL GOOD / NOT GOOD) а вот когда условие не соблюдено - дополнительная информация (о том что именно не так) - не выводится.

Вот что у меня в скрипте:

@app.route('/result')
def result():
    username = request.args.get('username')


    upper_count = 0
    number_count= 0
    ok_message=''
    reject_message=''
    uppercase_err_message=''
    num_err_message=''


    def result(uppercase, num):
        if uppercase == 0:
            uppercase_err_message = 'Need an UPPERCASE'
        if num == 0:
            num_err_message = 'need a NUM'


    for i in username:
        if i.isupper():
            upper_count +=1
        elif i.isdigit():
            number_count += 1

    result(upper_count, number_count)


    if upper_count != 0 and number_count !=0:
        ok_message = 'ALL GOOD!'
    else:
        reject_message = 'NOT GOOD...'

    return render_template ('result.html',
                                        username=username,
                                        ok_message=ok_message,
                                        reject_message=reject_message,
                                        uppercase_err_message=uppercase_err_message,
                                        num_err_message=num_err_message)


А вот что в шаблоне:

<h1>Your username is {{username}}</h1>
{{ok_message}}
{{reject_message}}
{{upercase_err_message}}
{{num_err_message}}

Спасибо!
  • Вопрос задан
  • 242 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Давай хотя бы так, а то чет страшно выглядит...

@app.route('/result')
def result():
    username = request.args.get('username')

    ok_message=''
    reject_message=''
    uppercase_err_message=''
    num_err_message=''

    has_upper = any([i.isupper() for i in username])
    has_digit = any([i.isdigit() for i in username])

    if not has_upper:
        uppercase_err_message = 'Need an UPPERCASE'
    elif not has_digit:
        num_err_message = 'need a NUM'

    if has_upper and has_digit:
        ok_message = 'ALL GOOD!'
    else:
        reject_message = 'NOT GOOD...'

    return render_template(
        'result.html',
        username=username,
        ok_message=ok_message,
        reject_message=reject_message,
        uppercase_err_message=uppercase_err_message,
        num_err_message=num_err_message
    )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы