Отправка данных формы, сохраненных в базе данных, по электронной почте (Flask, pymysql,)

#python #mysql #database #email #flask

Вопрос:

Я пытаюсь напрямую отправить данные, которые я получаю из html-формы (которая хранится в базе данных MYSQL), на определенный адрес электронной почты. Код с комментарием предназначен для отправки электронного письма. Я попытался поместить это в инструкцию try, сделав 2 разные попытки, но ничего из этого не сработало.

Кроме того, я попытался создать еще один @app.route(..) и попытаться инкапсулировать там код отправки электронной почты, но безуспешно.

Спасибо!

 import pymysql.cursors
import smtplib
import ssl
from flask import Flask, request, redirect, render_template

port_email = 465
password = 'xxxxxxxxx'
smtp_server = 'smtp.gmail.com'
sender = 'apltestnord@gmail.com'
receiver = 'email@gmail.com'
lista_detalii = ''
mess = """
Subject: Test 

"""
connection = pymysql.connect(host = '127.0.0.1',
                         user = 'tibi',
                         password = 'pass!',
                         db = 'angajari',
                         port = 2323,
                         cursorclass = pymysql.cursors.DictCursor)

app = Flask(__name__)

def get_data_from_db():  # function to get the data from de DB

    cursor_1 = pymysql.cursors.SSCursor(connection)
    sql_command = 'SELECT * FROM detalii_angajati'
    cursor_1.execute(sql_command)
    row = cursor_1.fetchall()
    return row

@app.route('/')
def home():
    return render_template('form.html')


@app.route('/submit_form', methods=['GET', 'POST'])
def form_input():

    if request.method == "POST":
        last_name = request.form['lname']
        first_name = request.form['fname']
        email = request.form['email']
        department = request.form['departament']
        sef_departament = request.form['s_d']
        data_angajare = request.form['data_angajare']
        try:

            with connection.cursor() as cursor:
                sql = 'INSERT INTO detalii_angajati (first_name, last_name,' 
                      ' email, data_angajarii, nume_departament, sef_departament)' 
                      ' VALUES (%s, %s, %s, %s, %s, %s) '
                cursor.execute(sql, (first_name, last_name, email, data_angajare, department, sef_departament))
                connection.commit()

        finally:

            return redirect("http://127.0.0.1:5000/")


@app.route('/submit_form', methods = ['GET', 'POST'])
def send_email():

    x = get_data_from_db()
    print(len(x))

    return redirect('http://127.0.0.1:5000/')


 # x = get_data_from_db()
 # print(type(x))
# print(len(x[0]))
# n = len(x)
#
# for i in range(len(x[0]) - 1):
#     lista_detalii  = " "   str(x[n-1][i])
#
# message = mess   lista_detalii
#
# context = ssl.create_default_context()
# with smtplib.SMTP_SSL(smtp_server, port_email, context = context) as server:
#     server.login(sender, password)
#     server.sendmail(sender, receiver, message)

if __name__ == "__main__":

    app.run()
    connection.close()