提问人:Claus 提问时间:11/13/2023 最后编辑:Claus 更新时间:11/13/2023 访问量:61
为什么切片只读取第一行和最后一行,跳过它们之间的行
why does the slices read only the first and last line , skipping the line between them
问:
我无法正确捕获(读取)从用户那里收到的文本 为什么无法正确读取填写表单中的数据?先谢谢你
我不明白原因,我哪里犯了错误?
text = str(settings.tg_message)
Name : { name }
Phone : { phone }
Vacancy : { vacancy }
a = text.find("{")
b = text.find("}")
c = text.rfind("{")
d = text.rfind("}")
u = text.find("{")
p = text.rfind("}")
part_1 = text[0:a]
part_2 = text[b + 1:c]
part_3 = text[d + 1:u]
part_4 = text[p:-2]
text_message = part_1 + tg_name + part_2 + tg_phone + part_3 + tg_vacancy + part_4
期望的结果:
Name : john
Phone : +359557664848
Vacancy : courier
输出:
Name : Jhon
Phone : { phone }
Vacancy : +359557664848courier
答:
0赞
willeM_ Van Onsem
11/13/2023
#1
主要问题是使用索引,因此在第一个和最后一个索引中搜索 和 。因此,这意味着不能使用中间的任何项目。{
}
话虽如此,使用这种字符串操作将非常容易出错:即使您设法使其正常工作,它对模板更改也非常敏感:例如,如果您交换模板中变量的顺序,或省略一个,它将开始失败。
此外,你不需要这个。Django 已经有一个模板渲染引擎可供你使用。
我会将设置重写为:tg_message
Name : {{ name }}
Phone : {{ phone }}
Vacancy : {{ vacancy }}
然后我们可以让 Django 完成所有工作:
from django.template import Context, Template
template = Template(settings.tg_message)
text_message = template.render(
Context({'name': 'John', 'phone': '+359557664848', 'vacancy': 'courier'})
)
评论
0赞
Claus
11/13/2023
你只是个天才)!!!!!!!!!!非常感谢,整个问题在 2 分钟内得到解决,感谢您的解释,现在我对 find,rfind 有了更多的了解)
评论
text
text
u
p
a
d
text