reqww, например, у меня есть скрипт, который делает запрос к стороннему API, получает json и передаёт его почти в исходном виде в jinja2 (не django, но там почти то же самое) renderer. Полученный текст затем отправляется по почте.
В шаблоне я перебираю переданные данные конструкциями шаблонизатора (кусочек для примера):
{% for t in templates %}
<tr class="template_info">
<td>{{ t.id }}</td>
<td>{{ t.category }}</td>
<td>{{ t.name }}</td>
<td>{{ t.language }}</td>
<td>{% if "quality_score" in t %}{{ t.quality_score.score }}{% else %}???{% endif %}</td>
<td>{{ t.status }}</td>
</tr>
<tr class="template_text">
<td colspan="6">
...
{% endfor %}
Вот кусок кода генерации отчёта:
def generate_report(template, name, to, nstat, astat, tstat):
tpl = jinja_env.get_template(template)
data = {}
data["phone_numbers"] = nstat
data["templates"] = tstat
html = tpl.render(data)
attachments = []
for number in astat:
stat = astat[number]
if config.draw_graphs:
fn = "tmp/graph_%s.png" % number
ref = "cid:graph_%s.png" % number
if re.search(ref,html):
generate_graph(fn, astat[number])
attachments.append(fn)
print ("Send report to %s..." % to)
send_message("foo@ba.ru",to,"Отчёт ляля %s" % name,None,html,attachments)
Это так задумано, что идеи нельзя патентовать. А то все самые умные запатентовали бы перемещение во времени, нанокомпьютеры и всё такое заранее, даже если это ещё не существует и может даже никогда не будет существовать.
Марат Нагаев, я на go писать не умею. Но вообще-то перехват stdin/stdout нужен когда нужно в софт на вход программно передать что-то и вернуть результат, а если надо запустить приложение для работы с ним пользователем - этого делать как раз наоборот не надо.
Марат Нагаев, дык nano по умолчанию работает с терминалом, понимает что там есть кнопки в stdin и всё такое, если перехватить stdout то терминала не будет.
Теоретически можно, например, на Linux с помощью sshfs. Но как тут уже правильно говорят - надо сразу приучать себя к тому, что между разработкой и продом должен быть организованный процесс деплоя. Хотя бы примитивное git commit && git push и git pull.
Захар Винокуров, что в русскоязычный гугл лезет этот треш на высокие позиции - огромный вопрос к гуглу.
Кстати, один из первопроходцев этого "е-бизнеса" (некий qaru точка site) детектил адблок и страшным баннером требовал его отключить, а до кучи реверсил весь текст на странице задом наперёд.
В шаблоне я перебираю переданные данные конструкциями шаблонизатора (кусочек для примера):
Вот кусок кода генерации отчёта: