закончена форма и функция регистрации

This commit is contained in:
mrmur 2022-04-03 18:11:35 +05:00
parent c50e38fde3
commit d1a6c3d2d8
4 changed files with 14 additions and 10 deletions

Binary file not shown.

View File

@ -1,4 +1,5 @@
from flask_wtf import FlaskForm from flask_wtf import FlaskForm
from flask_wtf.file import FileAllowed
from wtforms import EmailField, StringField, PasswordField, SubmitField, FileField, IntegerField, TextAreaField from wtforms import EmailField, StringField, PasswordField, SubmitField, FileField, IntegerField, TextAreaField
from wtforms.validators import DataRequired from wtforms.validators import DataRequired
@ -10,7 +11,7 @@ class RegisterForm(FlaskForm):
login = StringField('Логин', validators=[DataRequired()]) login = StringField('Логин', validators=[DataRequired()])
age = IntegerField('Age', validators=[DataRequired()]) age = IntegerField('Age', validators=[DataRequired()])
about = TextAreaField('Расскажите о себе', default='') about = TextAreaField('Расскажите о себе', default='')
photo = FileField('Фото') photo = FileField('Фото', validators=[FileAllowed(['jpg', 'png'])])
password = PasswordField('Пароль', validators=[DataRequired()]) password = PasswordField('Пароль', validators=[DataRequired()])
password2 = PasswordField('Повторите пароль', validators=[DataRequired()]) password2 = PasswordField('Повторите пароль', validators=[DataRequired()])
submit = SubmitField('Регистрация') submit = SubmitField('Регистрация')

19
main.py
View File

@ -1,9 +1,9 @@
from random import randint from random import randint
from PIL import Image from flask import Flask, render_template
from flask import Flask, render_template, request
from werkzeug.utils import redirect from werkzeug.utils import redirect
from PIL import Image
from data import db_session from data import db_session
from data.users import User from data.users import User
from forms.register import RegisterForm, Confirmation from forms.register import RegisterForm, Confirmation
@ -14,14 +14,13 @@ app.config['SECRET_KEY'] = 'moona_secret_key'
help_arg = None help_arg = None
send_msg = False send_msg = False
secret_code = None secret_code = None
photo = None
def save_photo(photo, login): def save_photo(photo, login):
size = (250, 250) with open(f'static/img/user_photo/{login}_logo.png', 'wb') as f:
im = Image.open(photo) photo.save(f)
im.thumbnail(size) return f'static/img/user_photo/{login}_logo.png'
im.save(f'static/img/user_photo/{login}.png')
return f'static/img/user_photo/{login}.png'
def secret_key(): def secret_key():
@ -38,6 +37,7 @@ def confirmation():
global help_arg global help_arg
global send_msg global send_msg
global secret_code global secret_code
global photo
form = help_arg form = help_arg
session = db_session.create_session() session = db_session.create_session()
conf = Confirmation() conf = Confirmation()
@ -55,7 +55,7 @@ def confirmation():
age=form.age.data, age=form.age.data,
about=form.about.data, about=form.about.data,
email=form.email.data, email=form.email.data,
photo=save_photo(request.files['file'], form.login.data), photo=photo,
role='user' role='user'
) )
else: else:
@ -82,6 +82,7 @@ def confirmation():
@app.route('/register', methods=['GET', 'POST']) @app.route('/register', methods=['GET', 'POST'])
def register(): def register():
global help_arg global help_arg
global photo
form = RegisterForm() form = RegisterForm()
if form.validate_on_submit(): if form.validate_on_submit():
if form.password.data != form.password2.data: if form.password.data != form.password2.data:
@ -94,6 +95,8 @@ def register():
form=form, form=form,
message="Такой пользователь уже есть") message="Такой пользователь уже есть")
help_arg = form help_arg = form
if form.photo.data:
photo = save_photo(form.photo.data, form.login.data)
return redirect('/confirmation') return redirect('/confirmation')
return render_template('register.html', title='Регистрация', form=form, message='') return render_template('register.html', title='Регистрация', form=form, message='')

View File

@ -4,7 +4,7 @@
{% block content %} {% block content %}
<div class="divlog"> <div class="divlog">
<h1 class="title">Регистрация</h1> <h1 class="title">Регистрация</h1>
<form action="" method="post"> <form action="" method="POST" enctype="multipart/form-data">
{{ form.hidden_tag() }} {{ form.hidden_tag() }}
{{ form.csrf_token }} {{ form.csrf_token }}
<p> <p>