首页
   /       /   
使用 Flask 实现动态向 HTML 文件的 `<head>` 添加代码的小工具
12月
10
使用 Flask 实现动态向 HTML 文件的 `<head>` 添加代码的小工具
作者: 大彭Sir    分类: 日常生活     正在检查是否收录...

在日常的前端开发中,我们有时需要向 HTML 文件的 <head> 标签中动态添加代码,例如添加一些全局样式、脚本或元信息。如果你希望通过一个小工具来高效实现这个功能,可以借助 Flask 快速构建一个实用的解决方案。
使用 Flask 实现动态向 HTML 文件的 `<head>` 添加代码的小工具

下面,我将为大家分享一个基于 Flask 的 Python 小工具,通过简单的用户交互,向指定目录中的 index.htmlindex.htm 文件的 <head> 标签中添加代码。


项目功能概述

这个小工具的功能主要包括:

  1. 路径输入:用户输入需要操作的 HTML 文件所在的目录路径。
  2. 代码输入:用户输入希望插入到 <head> 标签中的代码片段。
  3. 文件检测:自动检测指定目录中的 index.htmlindex.htm 文件。
  4. 代码插入:检查并在 <head> 标签中插入代码。
  5. 操作反馈:友好的用户界面,实时提示操作结果。

工具实现代码

以下是完整的 Python 代码实现:

from flask import Flask, request, render_template_string
import os

app = Flask(__name__)

HTML_TEMPLATE = """
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>(127)添加代码到head</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f7f7f7;
            color: #333;
            margin: 0;
            padding: 20px;
        }
        h1 {
            color: #4CAF50;
            text-align: center;
        }
        form {
            max-width: 600px;
            margin: 0 auto;
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        }
        label {
            font-size: 16px;
            margin-bottom: 8px;
            display: block;
        }
        input[type="text"], textarea {
            width: 100%;
            padding: 10px;
            margin: 8px 0 16px 0;
            border: 1px solid #ccc;
            border-radius: 4px;
            font-size: 14px;
        }
        button {
            padding: 10px 20px;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 4px;
            font-size: 16px;
            cursor: pointer;
        }
        button:hover {
            background-color: #45a049;
        }
        .message {
            text-align: center;
            margin-top: 20px;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <h1>(127)添加代码到HTML <head></h1>
    <form method="POST">
        <label for="file_path">文件路径(不含 index.html 或 index.htm):</label><br>
        <input type="text" id="file_path" name="file_path" required><br><br>

        <label for="code">请输入代码:</label><br>
        <textarea id="code" name="code" rows="5" cols="40" required></textarea><br><br>

        <button type="submit">添加代码</button>
    </form>

    {% if message %}
        <div class="message">{{ message }}</div>
    {% endif %}
</body>
</html>
"""

@app.route("/", methods=["GET", "POST"])
def add_code():
    message = ""
    if request.method == "POST":
        dir_path = request.form.get("file_path")
        code = request.form.get("code")

        if not os.path.exists(dir_path):
            message = "错误: 目录未找到."
        else:
            index_html = os.path.join(dir_path, "index.html")
            index_htm = os.path.join(dir_path, "index.htm")

            if os.path.exists(index_html):
                file_path = index_html
            elif os.path.exists(index_htm):
                file_path = index_htm
            else:
                message = "错误: 目录中未找到 index.html 或 index.htm 文件."
                return render_template_string(HTML_TEMPLATE, message=message)

            try:
                with open(file_path, "r", encoding="utf-8") as f:
                    content = f.read()

                if "<head>" not in content:
                    message = "错误: 未找到 <head> 标签."
                else:
                    new_content = content.replace("<head>", f"<head>\n{code}")
                    with open(file_path, "w", encoding="utf-8") as f:
                        f.write(new_content)
                    message = "代码已成功添加到 <head> 标签."
            except Exception as e:
                message = f"错误: {e}"

    return render_template_string(HTML_TEMPLATE, message=message)

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

使用步骤

1. 准备工作

  • 确保你已安装 Python 环境,推荐使用 Python 3.6 及以上版本。
  • 安装 Flask:pip install flask

2. 启动工具

将代码保存为 app.py 文件,运行以下命令启动服务:

python app.py

3. 访问页面

打开浏览器,访问 http://127.0.0.1:5000,即可看到如下界面:

  • 输入目录路径(不含 index.htmlindex.htm)。
  • 输入希望插入到 <head> 标签中的代码片段。
  • 点击“添加代码”按钮,查看操作结果。

特点与优势

  1. 易用性
    • 简单直观的界面,支持用户快速操作。
  2. 灵活性
    • 支持自定义代码,适配各种 HTML 文件。
  3. 安全性
    • 添加了路径和文件校验,避免误操作。

改进方向

  1. 支持多文件选择
    • 批量处理多个 HTML 文件。
  2. 代码高亮和预览
    • 使用 JavaScript 提供代码片段的高亮和预览功能。
  3. 更多文件类型支持
    • 不仅限于 index.html,还可扩展到其他类型的文件。

通过这篇教程,你可以快速实现一个小型工具,满足开发中的需求。如果你有更好的创意或需求,可以继续完善这个工具,让它更加强大!

本文标签: 标签: Python Flask 实用小工具
责任声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!
转载声明:本文作者 大彭Sir,如需转载请保留文章出处!原文链接请自行复制!

评论

Theme By Brief 鄂ICP备19010459号

sitemap

首页

分类

友链