Шорткод для Python Flask

Я создаю систему электронной почты, в которой пользователь загружает CSV-файл, содержащий заголовки, такие как электронная почта, имя, название компании. Строки содержат всю информацию о различных компаниях.

Затем программа перебирает строки CSV и отправляет их по электронной почте, содержащейся в CSV.

Я хочу внедрить систему шорткодов, аналогичную системе WordPress.

Вот как скрипт Python будет интерпретировать шорткоды:

Name: [Name]
Subject: Proposal for [company-name]

Message:
Dear [name],
...
...

Программа должна динамически загружать CSV и интерпретировать короткие коды из CSV.

Мне нужен совет, как это сделать. Спасибо!

Какой у вас вопрос специфический?

Klaus D. 10.03.2019 04:55
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
164
1

Ответы 1

Я не уверен, почему форматирование строк не решает эту проблему напрямую, но если вам нужен сложный HTML в электронной почте или вы думаете об абстрагировании шаблонов от жесткого кодирования, я рекомендую не изобретать велосипед — если вы используя Python, я бы сказал, просто используйте шаблоны Jinja2, смешанные с разбором CSV, чтобы заполнить шаблон

from __future__ import print_function
from jinja2 import Template
import csv
try:
  from StringIO import StringIO
except:
  from io import StringIO


templatestr = '''Name: {{name}}
Subject: Proposal for {{company_name}}

Message:
Dear {{name}},...
'''

rawcsv = StringIO('''nobody,company1
somebody,company2
''')

for row in csv.reader(rawcsv):
  print('~~~~~~~ {} ~~~~~~~~'.format(row))
  name, company_name = row
  result = Template(templatestr).render(name=name, company_name=company_name)
  print(result)

(отредактировано для добавления образца CSV)

Другие вопросы по теме