파이썬으로 데이터를 읽어서 HTML을 이용하고 메일을 보내고자 하는데요.
조회수 2077회
안녕하세요.
파이썬 이제 시작한 엔지니어입니다.. 완전 초보라서 정말 쉬운 질문인데 이해가 가지 않아서 여기에 올립니다.
우선 간단하게 로직은 이렇습니다.
- DB에서 데이터를 읽음 (여러row)
- 이것을 HTML을 이용하여 예쁘게 테이블화 시켜서 내역을 메일로 발송
이러한 간단한 로직인데, 전부 했는데 막히는 부분이 읽은 row를 테이블화 하는 것 입니다.
for문으로 돌리다 보니 읽고 메일보내고 읽고 메일보내고 하는데요.. 이걸 한방에 빵 보내고 싶은데... 아무리 List를 해봐도...배열을 만들어도 잘 모르겠습니다.
정말 초보적인 질문인데 정말 찾다찾다 이해가 안가서 올립니다.
감사합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
템플릿을 이용해보세요.
pip install jinja2
template.html 파일
{% macro yhjung(data) -%} <div>{{ data | addNum}}</div> {%- endmacro%} <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional/EN"> <html> <head> <title>Untitled</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> </head> <body> {% for data in datas -%} {{ yhjung(data) }} {% endfor %} <div>{{ clever_function() }}</div> </body> </html>
파이썬 파일
import os from jinja2 import Environment, FileSystemLoader THIS_DIR = os.path.dirname(os.path.abspath(__file__)) j2_env = Environment(loader=FileSystemLoader(THIS_DIR)) def addNum(value): return int(value) + 2 def clever_function(): return "HELLO" def main(): contents = j2_env.get_template('template.html').render(datas=range(10), clever_function=clever_function) print(contents) if __name__ == "__main__": j2_env.filters["addNum"] = addNum main()
같은 디렉토리에 파이썬 파일과 템플릿파일을 넣고 파이썬 파일을 실행해보세요.
댓글 입력