簡體   English   中英

如何通過單擊 HTML 網頁上的按鈕運行 python 腳本?

[英]How to run a python script from clicking a button on a HTML webpage?

我目前有一個 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函數注冊。 在這里,您可以實現對按鈕按下做出反應的邏輯(在示例中,它將當前時間寫入服務器上的data.txt )。 由於腳本在服務器上運行而您的瀏覽器在客戶端上運行,因此這僅在實際上是同一台機器時才有效,即如果您在本地將其用作程序的接口。 如果您想將服務器和客戶端分開,您需要引入一種傳輸數據的方法。

現在您可以按如下方式運行 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

你不能在 html 中運行 python。 你可以只使用javascript。 但是如果您不想更改語言或使用 python 框架,您可以將信息作為 json 傳遞,然后使用 javascript。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM