#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()