我想创建一个可以更改html文档的python脚本,我有点迷失,不知道从哪里开始,我尝试了一些根本不起作用的东西而且没有认为值得在这里张贴它们。
问题在于,使用Django,最好编写如下链接:
<link href="{% static 'assets/css/cssfile.css' %}"/>
<script src="{% static 'assets/js/jsfile.js' %}"></script>
<img src="{% static 'assets/images/desktop.png' %}"/>
但我有一个模板,实际上有几个模板,有很多以正常方式引用的静态资产,如下所示:
<link href="assets/css/cssfile.css" rel="stylesheet"/>
<script src="assets/js/jsfile.js"></script>
<img src="assets/images/desktop.png"/>
所以,我一直在尝试创建一个查找“资产”并编辑该行的脚本,将href="assets
替换为href="{% static'
...然后添加' %}
at结束。我认为这对于使用模板的django开发人员来说是一个非常有价值的脚本,也许它已经存在于某个地方。
是否有任何自动方式将普通的href / src属性转换为使用Django标签?
答案 0 :(得分:5)
我假设你知道正则表达式。我做出这种改变的首选方法是使用具有正则表达式支持的编辑器,然后这是一个搜索&amp;更换。如果你正在使用Django,来自jetbrains的pycharm非常物有所值。我喜欢vim。
每个编辑器对正则表达式捕获组的工作方式有一些不同(请检查您的编辑器/ ide文档),但这种正则表达式的一般格式是:
(src|href)="(assets\/.+?)"
正在搜索以src
开头的href
或assets
属性,捕获引号之间的所有内容。因此,捕获组1是属性,捕获组2是值 - 替换表达式是:
\1="{% static '\2' %}"
在某些编辑器上,您必须使用$1
和$2
代替\1
和\2
。在vim你必须逃脱parins IICR。此外,有些编辑不支持这种语法(.+?
)非贪婪&#34;捕获所有内容&#34;,您可能不得不使用[^"]+
。
答案 1 :(得分:3)
存在一个为您执行此操作的python软件包,请参阅:https://pypi.org/project/djangify/