我目前有一个 python 脚本,可以在运行时更新某些 CSV 文件(它会抓取并更新 CSV 文件的信息)。在我的 HTML 页面 (index.html) 中,index.html 中有一个脚本标记,用于读取 CSV 文件并将其显示为网页上的表格。但是,我现在需要做的是通过按网页上的 HTML 按钮来更新 CSV 文件。这将更新 CSV 文件,因此当我运行按钮来运行 JS 脚本时,它将更新文件中的值。
我搜索了一下,发现很难理解使用flask和Django的含义(我对设置服务器一无所知)。我不想设置 Django 网页,因为我想使用我当前编写的纯 HTML 网页。
如果答案与当前在 HTML 中运行 python 脚本的标准解决方案保持同步,我将不胜感激。
请询问您是否需要更多信息。谢谢。
最佳答案
您需要设置一个网络服务器。 Flask可以用于该目的。因此您可以创建以下脚本:
from datetime import datetime
from flask import Flask, redirect, request
app = Flask(__name__)
@app.route('/')
def index():
with open('index.html') as fh:
return fh.read()
@app.route('/update')
def update_file():
with open('data.txt', 'w') as fh:
fh.write(datetime.now().strftime('%H:%M:%S'))
return redirect(request.referrer)
@app.route('/')
提供存储在 index.html
中的着陆页:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example</title>
</head>
<body>
<form action="/update">
<input type="submit">
</form>
</body>
</html>
此 HTML 页面包含一个引用 /update
的提交按钮。在上面的 Web 服务器脚本中,此路由通过 update_file
函数注册。在这里,您可以实现逻辑以对按钮按下使用react(在示例中,它将当前时间写入服务器上的 data.txt
)。由于脚本在服务器上运行,而浏览器在客户端上运行,因此只有在实际上是同一台机器时才有效,即,如果您在本地将其用作程序的接口(interface)。如果您想分离服务器和客户端,您需要引入一种传输数据的方法。
现在您可以按如下方式运行 Web 服务器:
$ FLASK_APP=script.py flask run
[...]
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
现在您可以导航到上面指示的地址,然后您将进入登录页面。按下按钮更新文件:
$ tree .
.
├── data.txt <-- This file gets updated.
├── index.html
├── __pycache__
│ └── script.cpython-38.pyc
└── script.py
关于javascript - 如何通过单击 HTML 网页上的按钮来运行 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60712353/