本人有一堆 HTML 格式的文件需要多语言替换其中的一些字符串。
本来是这样写的:
title = '中文标题'
name = '中文名称'
html_format = F"""<html>xxxxxxxx {title} xxxxxxx,xxxxx{name}xxxxxx 很长很长的字符串....."""
写了几个发现,这样写实在是太麻烦了啊,代码完全写死在一个文件里面,没法吧模板字符串分离出来。 大家有没有什么方法可以实现类似这样的写法?:
html = """<html>xxxx.xxxx{xxx}{xx}""" ## 把字符串单独存到一个变量里面
Fhtml ##html 是变量.F 是 f_string 方法
PS:虽然知道有模板引擎 Jinja2,但是不喜欢它在渲染的时候传参太墨迹了啊。
1
ideacco OP 有一个比较诡异的方法:
``` name = '邪恶的 EVAL' my_str = "F'这个变量名字是:{name}'" print(eval(my_str2)) >>> 这个变量名字是:邪恶的 EVAL ``` 使用的时候,把 HTML 模板文档编辑好后,头部加上 str = """F""",尾部加上"""""",然后通过 import 引入这个变量就可以了。 |
2
PlushieChicka 2019-07-08 01:27:13 +08:00 1
用 eval 把文本拼凑成 f_string
|
3
ysc3839 2019-07-08 01:33:40 +08:00 1
print(html.format(**locals()))
|
4
ideacco OP @PlushieChicka 感谢,可以用了
|
6
yexiaoxing 2019-07-08 02:13:16 +08:00
|
7
twotiger 2019-07-08 09:31:07 +08:00
现在流行前后端分离了。后端只传递 json。
|
8
itskingname 2019-07-08 09:49:13 +08:00
正常的学习路径是先知道字符串的.format 然后再知道 f 表达式。你怎么是反过来的。知道 f 表达式却不知道 format
|
9
ideacco OP @itskingname 说的是,因为是新手,所以看的都是最新的文档,之前的方法还不是很了解
|
11
hjq98765 2019-07-08 18:28:46 +08:00
老老实实.format 吧,个人不太喜欢 f-string,语法上既不是带括号的函数又不是空一格的命令也不是带点儿的方法,感觉很怪
|