Изменение профиля
This commit is contained in:
parent
215f6f8399
commit
4a7f0747f8
BIN
db/moona_data.db
BIN
db/moona_data.db
Binary file not shown.
@ -6,6 +6,5 @@ from wtforms.validators import DataRequired
|
||||
class LoginForm(FlaskForm):
|
||||
email = EmailField('Почта', validators=[DataRequired()])
|
||||
password = PasswordField('Пароль', validators=[DataRequired()])
|
||||
style = {"type": "checkbox", "class": "btn-check", "id": "btn-check", "autocomplete": "off"}
|
||||
remember_me = BooleanField('Запомнить меня')
|
||||
submit = SubmitField('Войти')
|
||||
@ -15,6 +15,8 @@ class RegisterForm(FlaskForm):
|
||||
password = PasswordField('Пароль', validators=[DataRequired()])
|
||||
password2 = PasswordField('Повторите пароль', validators=[DataRequired()])
|
||||
submit = SubmitField('Регистрация')
|
||||
del_photo = SubmitField('Удалить фотографию')
|
||||
submit2 = SubmitField('Сохранить')
|
||||
|
||||
|
||||
class Confirmation(FlaskForm):
|
||||
|
||||
49
main.py
49
main.py
@ -72,6 +72,48 @@ def main_page():
|
||||
return render_template('base.html', title='moona')
|
||||
|
||||
|
||||
@app.route('/edit_profile/<string:logins>', methods=['GET', 'POST'])
|
||||
def edit_profile(logins):
|
||||
global photo
|
||||
global help_arg
|
||||
form = RegisterForm()
|
||||
session = db_session.create_session()
|
||||
ph_f = False
|
||||
if form.del_photo.data:
|
||||
help_arg = photo
|
||||
photo = '../static/img/None_logo.png'
|
||||
if form.submit2.data:
|
||||
user = session.query(User).filter(User.login == logins).first()
|
||||
user.name = form.name.data
|
||||
user.surname = form.surname.data
|
||||
user.age = form.age.data
|
||||
user.about = form.about.data
|
||||
if not ph_f and form.photo.data:
|
||||
photo = save_photo(form.photo.data, logins)
|
||||
if help_arg:
|
||||
os.remove(help_arg)
|
||||
help_arg = False
|
||||
user.photo = photo
|
||||
session.commit()
|
||||
return redirect('/profile')
|
||||
if request.method == "GET":
|
||||
if current_user.login == logins:
|
||||
form.email.data = current_user.email
|
||||
form.name.data = current_user.name
|
||||
form.surname.data = current_user.surname
|
||||
form.login.data = logins
|
||||
form.age.data = current_user.age
|
||||
form.about.data = current_user.about
|
||||
form.password.data = None
|
||||
form.password2.data = None
|
||||
if current_user.photo != '../static/img/None_logo.png':
|
||||
photo = current_user.photo
|
||||
ph_f = True
|
||||
else:
|
||||
photo = None
|
||||
return render_template('edit_profile.html', title='Редактирование профиля', form=form, message='', ph_f=ph_f)
|
||||
|
||||
|
||||
@app.route('/profile')
|
||||
def profile():
|
||||
db_sess = db_session.create_session()
|
||||
@ -523,7 +565,6 @@ def confirmation():
|
||||
if not send_msg:
|
||||
secret_code = secret_key()
|
||||
mail(f'Ваш секретный код: {secret_code}', form.email.data, 'Moona Код')
|
||||
print(secret_code)
|
||||
send_msg = True
|
||||
if conf.validate_on_submit():
|
||||
if str(conf.code_key.data).strip() == str(secret_code).strip():
|
||||
@ -575,6 +616,10 @@ def register():
|
||||
return render_template('register.html', title='Регистрация',
|
||||
form=form,
|
||||
message="Такой пользователь уже есть")
|
||||
if session.query(User).filter(User.email == form.email.data).first():
|
||||
return render_template('register.html', title='Регистрация',
|
||||
form=form,
|
||||
message="Такая почта уже есть")
|
||||
help_arg = form
|
||||
if form.photo.data:
|
||||
photo = save_photo(form.photo.data, form.login.data)
|
||||
@ -596,7 +641,7 @@ def recovery():
|
||||
user_email = form.email.data
|
||||
if not send_msg:
|
||||
secret_code = secret_key()
|
||||
mail(f'Ваш секретный код: {secret_code}', form.email.data, 'Moona Код')
|
||||
mail(f'Ваш секретный код: {secret_code}', form.email.data, 'Восстановление пароля')
|
||||
send_msg = True
|
||||
print(secret_code)
|
||||
return render_template('recovery.html', title='Восстановление пароля', form=conf, message='', s='2')
|
||||
|
||||
@ -43,4 +43,9 @@ table {
|
||||
width: 35%;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
.logout_btn {
|
||||
width: 96%;
|
||||
margin-right: 2%;
|
||||
margin-left: 2%;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
81
templates/edit_profile.html
Normal file
81
templates/edit_profile.html
Normal file
@ -0,0 +1,81 @@
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" href="../static/css/register.css">
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div class="divlog">
|
||||
<h1 class="title">Регистрация</h1>
|
||||
<form class="row g-3" action="" method="POST" enctype="multipart/form-data">
|
||||
{{ form.hidden_tag() }}
|
||||
{{ form.csrf_token }}
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">{{ form.name.label }}</label>
|
||||
{{ form.name(class="form-control", type="text") }}
|
||||
{% for error in form.name.errors %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ error }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">{{ form.surname.label }}</label>
|
||||
{{ form.surname(class="form-control", type="text") }}
|
||||
{% for error in form.surname.errors %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ error }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">{{ form.email.label }}</label>
|
||||
{{ form.email(class="form-control", type="email") }}
|
||||
{% for error in form.email.errors %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ error }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">{{ form.age.label }}</label>
|
||||
{{ form.age(class="form-control", type="number") }}
|
||||
{% for error in form.age.errors %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ error }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<label class="form-label">{{ form.about.label }}</label>
|
||||
{{ form.about(class="form-control", type="textarea") }}
|
||||
{% for error in form.about.errors %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ error }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% if ph_f %}
|
||||
{{ form.del_photo(type="submit", class="btn btn-primary") }}
|
||||
{% for error in form.del_photo.errors %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ error }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<p>
|
||||
{{ form.photo.label }}<br>
|
||||
{{ form.photo(class="form-control") }}<br>
|
||||
{% for error in form.photo.errors %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ error }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</p>
|
||||
{% endif %}
|
||||
<div class="but">
|
||||
<p>{{ form.submit2(type="submit", class="btn btn-primary", style="background-color:#38aaff") }}</p>
|
||||
{% if message != '' %}
|
||||
<div class="alert alert-danger" role="alert">{{ message }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@ -14,8 +14,11 @@
|
||||
</h5>
|
||||
{% endif %}
|
||||
<div>
|
||||
<a href="/edit_profile/{{current_user.id}}" type="submit" class="btn btn-primary"
|
||||
<a href="/edit_profile/{{current_user.login}}" type="submit" class="btn btn-primary"
|
||||
style="background-color:#38aaff">Редактировать профиль</a>
|
||||
<a style="border-radius: 15px;" href="/logout" class="btn btn-danger logout_btn">
|
||||
Выйти
|
||||
</a>
|
||||
</div>
|
||||
</th>
|
||||
<th class="row_centre">
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" href="../static/css/register.css">
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user