как я могу использовать данные из одной функции в другой функции?

#python #python-3.x #flask

Вопрос:

Я хочу получить доступ к паре переменных из одной функции внутри другой функции, и я не знаю, как я могу это сделать.

код функций приведен ниже

 def register():
    form1 = Signup()
    if form1.validate_on_submit():
        signin = auth_py.create_user_with_email_and_password(form1.email_address.data, form1.password.data)
        user = auth_py.send_email_verification(signin['idToken'])  # for email verification

        name = form1.name.data
        username = form1.username.data
        email_address = form1.email_address.data

        return redirect(url_for('home_page'))
    if form1.errors != {}:   # if no errors occur from validators
        for err_msg in form1.errors.values():
            print(f'there was an error creating the user {err_msg}')
    # database(username=username, name=name, email_address=email_address)
    return render_template('sign-up.html', form1=form1)


@app.route('/signin', methods=['GET', 'POST'])
def login():
    form2 = Signin()
    if form2.validate_on_submit():
        user = auth_py.sign_in_with_email_and_password(form2.email.data, form2.password.data)
        user = auth_py.refresh(user['refreshToken'])
        data = auth_py.get_account_info(user['idToken'])   # get user information
        email_verified = data['users'][0]['emailVerified']
        print(email_verified)   # knowing weather user's email is verified or not
        return redirect(url_for('account_page'))

    if form2.errors != {}:   # if no errors occur from validators
        for err_msg in form2.errors.values():
            print(f'there was an error creating the user {err_msg}')
    return render_template('sign-in.html', form2=form2)
 

я хочу использовать name , username и email_address register() изнутри login() , как я могу это сделать?

Комментарии:

1. Вы запрашиваете пользователя из auth_py login функции in, но в ней нет кода register для хранения пользовательских данных.

2. Традиционно session для этого и используется словарь. Он содержит информацию о состоянии для каждого сеанса браузера.

3. @Vigen в нем есть функция с комментариями register , которая называется database

4. @vanditvasa затем проверьте значение функции data in login и обязательно позвоните database в нужное место (вам нужно сохранить данные пользователя, когда form1.validate_on_submit() это верно). Трудно сказать, что не так, потому что фактическая реализация database и auth_py не опубликована.

5. Вы хотите, чтобы пользователь вошел в систему с данными, с помощью которых он пытается зарегистрироваться? Если это так, вам нужно будет успешно зарегистрировать пользователя, а затем запросить api входа в систему внутри функции api resgister. Пожалуйста, уточните свой способ использования, чтобы люди могли предложить вам что-то лучшее.