【发布时间】:2010-07-20 06:13:15
【问题描述】:
我正在 wxpython 中创建一个 html 窗口并想打印它。在此之前,我需要在 html 页面中输入用户输入(例如他的姓名或诸如此类的东西)。如何很好地做到这一点? 提前致谢,
【问题讨论】:
我正在 wxpython 中创建一个 html 窗口并想打印它。在此之前,我需要在 html 页面中输入用户输入(例如他的姓名或诸如此类的东西)。如何很好地做到这一点? 提前致谢,
【问题讨论】:
使用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>
【讨论】:
我想到了几种方法。如果它就像一封只替换特定部分的套用信函,那么您可以将其交给用户并有一些文本控件供他们填写。像这样:
亲爱的#NAME,
感谢您联系#COMPANY,等等等等
然后为每个可替换部分设置一个文本控件。另一种方法是使用 RichTextCtrl 的 Save As HTML 功能。有关示例,请参见 wxPython 演示应用程序。
【讨论】: