#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
inlogin
и обязательно позвонитеdatabase
в нужное место (вам нужно сохранить данные пользователя, когдаform1.validate_on_submit()
это верно). Трудно сказать, что не так, потому что фактическая реализацияdatabase
иauth_py
не опубликована.5. Вы хотите, чтобы пользователь вошел в систему с данными, с помощью которых он пытается зарегистрироваться? Если это так, вам нужно будет успешно зарегистрировать пользователя, а затем запросить api входа в систему внутри функции api resgister. Пожалуйста, уточните свой способ использования, чтобы люди могли предложить вам что-то лучшее.