Как вставить динамическую строку в HTML-окно wxpython? (Wx.html.htmlwindow) - PullRequest
2 голосов
/ 20 июля 2010

Я делаю html окно в wxpython и хочу его напечатать. Перед этим мне нужно ввести пользовательский ввод (например, его имя или тому подобное) на HTML-странице. Как это сделать красиво? Заранее спасибо,

Ответы [ 2 ]

1 голос
/ 21 июля 2010

Использование Jinja2 .

Создайте шаблон HTML с переменными в тех местах, где вам нужно отобразить введенные пользователем данные. Затем визуализируйте шаблон со словарем, содержащим эти данные.

Здесь я напишу вам вспомогательный модуль.

# templates.py
import jinja2 as jinja

def create_env():
    loader = jinja.FileSystemLoader(PATH_TO_YOUR_TEMPLATES)
    env = jinja.Environment(loader=loader)
    return env

env = create_env()

def render(name, context=None):
    context = context or {}
    return env.get_template(name).render(context)

# my_module.py
import templates

data = {
    'first_name': 'John',
    'last_name': 'Smith',
}

html = templates.render('my_template.html', data)
# do something with html string

# my_template.html
<p>Hello, {{ first_name }} {{ last_name }}.  This is a template.</p>
0 голосов
/ 21 июля 2010

Есть несколько подходов, которые приходят мне в голову. Если это похоже на письмо формы, в котором будут заменены только определенные части, то вы можете просто сообщить об этом пользователю и иметь некоторые текстовые элементы управления для заполнения.

Уважаемый # ИМЯ,

Спасибо, что связались с #COMPANY, бла-бла-бла

И затем есть текстовый элемент управления для каждой из заменяемых частей. Другим методом будет использование функциональности RichTextCtrl «Сохранить как HTML». См. Пример демонстрационного приложения wxPython.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...