如何使用html按钮运行python脚本?

2024-09-28 18:59:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我只想通过单击html按钮来运行python脚本。 python脚本非常简单。当您运行它时,它只需在我的数据库中添加一个“name”和“age”数据。你知道吗

import sqlite3

conn = sqlite3.connect('bdaremplir.sqlite')
cur = conn.cursor()

"""cur.execute('DROP TABLE IF EXISTS latable')
cur.execute('CREATE TABLE latable (noms TEXT, age INTEGER)')"""



nom = 'TheName'
age = 100

cur.execute('''INSERT OR IGNORE INTO latable (noms, age) VALUES ( ?, ? )''', (nom, age))
conn.commit()

以及html的基础知识

<!DOCTYPE html>
<html>
    <head>
        <title>visualisateur</title>
    </head>
    <body>
        <button></button>
    </body>
</html>

现在我不知道我能做什么。 如果有人能帮忙。。。谢谢您。你知道吗


Tags: 脚本executeagetitlehtmltablebodybutton
1条回答
网友
1楼 · 发布于 2024-09-28 18:59:32

Web浏览器只知道如何运行JavaScript,而不知道Python,因此除非您真的想在浏览器1中运行Python,否则您必须了解the client-server architecture of the web。你知道吗

基本上,你必须

  1. 使您的Python程序可以作为web服务器使用,并且
  2. 单击HTML按钮时向该服务器发送请求。你知道吗

运行web服务器

用Python实现web服务器有很多种方法。当您开始编写一个合适的应用程序时,您可能需要使用Flask、Django或其他库。但要快速开始,您可以use the built-in Python HTTP server with CGI

  1. 创建名为handle_request.py的Python脚本,其内容如下:

    #!/usr/bin/env python3
    print("Content-Type: text/plain\n")
    print("hello world")
    

    把它放到HTML文件旁边的cgi-bin目录中,并确保可以通过键入“handle”来运行它_请求.py”进入控制台;

  2. 运行内置HTTP服务器:

    python3 -m http.server  bind localhost  cgi 8000
    
  3. 在浏览器中打开http://localhost:8000以访问服务器。

您应该看到目录列表,包括HTML文件和cgi-bin目录。单击HTML文件应该会在浏览器中显示它(使用类似http://localhost:8000/test.html的URL),打开http://localhost:8000/cgi-bin/handle_request.py将运行我们创建的脚本并将其响应显示为网页。您可以将代码添加到脚本中,并且每当浏览器访问其URL时,脚本都将运行。你知道吗

从您的网页发出请求

现在的问题是如何让浏览器在点击页面上的按钮时访问http://localhost:8000/cgi-bin/handle_request.pyURL。你知道吗

为此,需要调用API从JavaScript发出请求。有不同的方法可以做到这一点(例如XMLHttpRequestjQuery.ajax()),但在现代web浏览器中,一种简单的方法是fetch()

<button id="mybutton"></button>

<script>
document.getElementById("mybutton").onclick = async function() {
  let response = await fetch("http://localhost:8000/cgi-bin/handle_request.py");
  let text = await response.text();
  alert(text);
}
</script>

现在,当您单击该按钮时,浏览器将向指定的URL发出请求(从而运行脚本),但结果将不会显示为选项卡中的网页,而是可供JavaScript使用。你知道吗

注意事项

1…此时您可能不知道,但如果您知道,请参见the pointers by Michael Bianconi

相关问题 更多 >