如何在wxpython的html窗口中插入动态字符串?(wx.html.htmlwindow)
我正在用wxpython制作一个html窗口,想要打印它。在这之前,我需要在html页面上输入用户的信息(比如他的名字之类的)。请问怎么才能做到这一点呢?谢谢!
2 个回答
0
我想到几种方法。如果你要做的是一种表格信件,只需要替换特定的部分,那么你可以把这个模板展示给用户,并让他们填写一些文本框。比如这样:
亲爱的 #NAME,
感谢您联系 #COMPANY,等等等等。
然后为每个需要替换的部分提供一个文本框。另一种方法是使用 RichTextCtrl 的“另存为 HTML”功能。你可以查看 wxPython 演示应用程序,里面有个例子。
1
使用 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>