python批量将html静态文件配置转换为Django静态文件配置

原始代码:


    <link rel="icon" href="img/icons/icon-72x72.png">
    <link rel="stylesheet" href="style.css">
    <link rel="manifest" href="manifest.json">
    <img class="big-logo" src="img/core-img/logo-white.png" alt="">
    <a class="btn btn-success btn-lg w-100" href="login.html"></a>
    <script src="js/jquery.min.js"></script>

 

结果代码

    <link rel="icon" href="{% static 'img/icons/icon-72x72.png' %}">
    <link rel="stylesheet" href="{% static 'style.css' %}">
    <link rel="manifest" href="{% static 'manifest.json' %}">
    <img class="big-logo" src="{% static 'img/core-img/logo-white.png' %}" alt="">
    <a class="btn btn-success btn-lg w-100" href="{% static 'login.html' %}"></a>
    <script src="{% static 'js/jquery.min.js' %}"></script>

 

用正则表达式匹配和替换。

t='''<link rel="icon" href="img/icons/icon-72x72.png">
    <link rel="stylesheet" href="style.css">
    <link rel="manifest" href="manifest.json">
    <img class="big-logo" src="img/core-img/logo-white.png" alt="">
    <a class="btn btn-success btn-lg w-100" href="login.html"></a>
    <script src="js/jquery.min.js"></script>'''

import re
item = re.findall(f'href=\"(.*?)\"', t)+re.findall(f'src=\"(.*?)\"',t)
for x in item:
    print(x)
    t=re.sub(x,f'{{% {x} %}}',t)
print(t)

 

上面的大佬基本对了,但是与要求不一致

下面是修改的

import re
item = re.findall(f'href=\"(.*?)\"', t)+re.findall(f'src=\"(.*?)\"',t)
for x in item:
    print(x)
    t=re.sub(x,f'{{% static \'{x}\' %}}',t)
print(t)