Menu



Manage

Cord > Project_AI이미지 처리 전체 다운로드
Project_AI이미지 처리 > venv/join.py Lines 72 | 2.5 KB
다운로드

                        from flask import render_template, request, redirect, url_for, flash
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, EmailField
from email_validator import validate_email, EmailNotValidError 
import string

#아래는 이메일 패키지
import smtplib
from email.mime.text import MIMEText


class SignupForm(FlaskForm):
    id = StringField('ID')
    email = EmailField('Email')
    password = PasswordField('Password')
    name = StringField('Name')
    postcode = StringField('Postcode')
    address = StringField('Address')
    detail_address = StringField('Detail Address')
    submit = SubmitField('Sign Up')

def send_verification_email(email):
    sender_email = "-@gmail.com"
    sender_password = "-"

    message = MIMEText("국제법보다 편리함이 우선인 정체불명의 사이트의 가입하신 것을 축하합니다.")
    message["Subject"] = "회원가입을 축하합니다."
    message["From"] = sender_email
    message["To"] = email

    with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
        server.login(sender_email, sender_password)
        server.sendmail(sender_email, email, message.as_string())

def signup_s(form, mydb):
    if form.validate_on_submit():
        id = form.id.data
        email = form.email.data
        postcode = form.postcode.data
        address = form.address.data
        detail_address = form.detail_address.data

        # 주소 정보 조합
        full_address = f"{postcode} {address} {detail_address}"

        mycursor = mydb.cursor()
        sql = "SELECT id FROM new_table WHERE id = %s"
        val = (id,)
        mycursor.execute(sql, val)
        result = mycursor.fetchone()
        if result:
            return render_template('signup.html', form=form, error="이미 사용 중인 ID입니다.")

        try:
            validate_email(email)
        except EmailNotValidError as e:
            return render_template('signup.html', form=form, error=str(e))

        send_verification_email(email)  # 축하 메일 전송

        sql = "INSERT INTO new_table (id, E_mail, password, name, address) VALUES (%s, %s, %s, %s, %s)"
        val = (id, email, form.password.data, form.name.data, full_address)
        mycursor.execute(sql, val)
        mydb.commit()

        flash('회원가입이 완료되었습니다. 로그인해주세요.')
        return redirect(url_for('index'))  # 회원가입 후 index로 이동

    return render_template('signup.html', form=form)