Я пытаюсь отправить выбранные данные в табличном формате. Вывод, который я получаю в своем почтовом ящике:
{% for row in {results} %} {{row[0]}} {{row[1]}} {{row[2]}} {{row[3]}} {{row[4]}} {% endfor %}
Вот код:
from email.message import EmailMessage
import smtplib
import psycopg2
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from flask import Flask, render_template, request
msg = MIMEMultipart('alternative')
msg['Subject'] = 'Table'
msg['From'] = "pathakgandharv@gmail.com"
msg['To'] = "pathakgandharv@gmail.com"
text = "Hi!\nHow are you?\nHere is the data you wanted :"
# DatabaseConncetion
user = "------"
password = "-----"
host = "@some host"
port = 8081
database = " "
insert_time="some value"
entity_name="some value"
db_conn = psycopg2.connect(
host=host, user=user, password=password, database=database)
cursor = db_conn.cursor()
sql_query = "SELECT * FROM operational_metadata WHERE bor_name = %s and insert_time = %s;"
cursor.execute(sql_query, (entity_name, insert_time,))
results = cursor.fetchall()
for row in results:
a0=row[0]
a1=row[1]
a2=row[2]
a3=row[3]
a4=row[4]
html = """\
<html>
<head></head>
<body>
<table border="1">
<tr>
{% for row in {results} %}
<td>{{row[0]}}</td>
<td>{{row[1]}}</td>
<td>{{row[2]}}</td>
<td>{{row[3]}}</td>
<td>{{row[4]}}</td>
{% endfor %}
</tr>
</table>
</body>
</html>
"""
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
mail = smtplib.SMTP('smtp.gmail.com', 587)
mail.ehlo()
mail.starttls()
mail.login("pathakgandharv@gmail.com","----------")
mail.sendmail("pathakgandharv@gmail.com","pathakgandharv@gmail.com", msg.as_string())
mail.quit()
Как я могу отправить данные в табличном формате? Я могу получить все значения из базы данных. Есть ли другой и лучший подход? Я пытался использовать PrettyTable, но он не работал