如何在同一Python脚本中实现点击网页链接触发函数调用?
同文件内实现Python函数与HTML交互(无需外部脚本/JavaScript)
可以实现,核心思路是通过CGI环境变量解析用户请求的路径,在脚本内判断并执行对应函数,无需拆分代码或引入JavaScript。
修改后的完整代码
#!/usr/bin/python3 import os def EchoHello(): print('Content-type:text/html\r\n\r\n') print('<html><body><h3>Hello executed!</h3><a href="/">Back to project list</a></body></html>') # 获取请求路径 path = os.environ.get('PATH_INFO', '') # 判断请求并执行对应逻辑 if path == '/EchoHello': EchoHello() else: # 输出主页面 d = ''' <html> <head> <title>My Site</title> </head> <body> <h2>Project List</h2> <table> <tr><th>Active Projects</th></tr> <tr><td>Line</td><td>Proj ID</td></tr> <tr><td><a href="/EchoHello">Proj100</a></td><td>Calculate ID</td></tr> </table> </body> </html> ''' print("Content-type:text/html\r\n\r\n") print(d)
关键说明
- 导入
os模块读取CGI环境变量PATH_INFO,该变量记录了用户请求的URL路径 - 当用户点击
Proj100链接时,请求路径为/EchoHello,脚本判断后直接调用EchoHello()函数并输出对应的响应内容 - 若请求路径不是
/EchoHello,则输出原有的项目列表页面 - 链接的
href改为/EchoHello(去掉原有的括号,避免路径解析问题)
注意事项
- 确保你的Web服务器已配置支持CGI,并且该脚本具有可执行权限(可通过
chmod +x index.py设置,建议将文件名改为index.py更清晰) - 函数执行后的响应需要正确输出HTTP头(
Content-type:text/html\r\n\r\n),否则浏览器无法正确解析内容
内容的提问来源于stack exchange,提问作者jicman
相关产品推荐
相关产品推荐

