我是Flask的新手,我试图在点击html页面中的按钮后从后台运行python脚本。这里是我的代码:在Flask中使用html运行python脚本
app.py
from flask import *
from functools import wraps
import sqlite3
app = Flask(__name__)
@app.route('/')
def home():
return render_template('home.html')
@app.route('/generate')
def generate():
return render_template('process.html')
和我process.html如下:
<html>
<head>
<body>
Processing...
<script>
exec('python /pth to my python file/myfile.py')
</script>
</body>
</head></html>
和home.html的如下:
{% extends "template.html" %}
{% block content %}
<div class = "jumbo">
<h2> Home</h2>
<br/>
<p><a href="{{ url_for('generate') }}">click me</a></p>
<p> lorem epsum </p>
<div>
{% endblock %}
我工作在Linux和如上所示,我不知道是否可以在html中使用exec。但是.html文件中的exec命令没有执行。我还是新来的瓶子,我会提出任何有关如何使其工作的建议。
这根本没有任何意义。您不能在模板内随机执行脚本。这种事情必须在Flask代码中完成;无论在myfile.py中,都应该放在另一个处理函数中。 –
从来没有听说过客户端JavaScript中的exec命令。如果您想在后台运行python代码,请使用XHR(AJAX)调用Flask端点并在服务器上运行所需的python代码。 – abigperson