从html页面Flask运行python脚本

时间:2018-12-06 07:48:29

标签: python flask

在我按下在index.html中创建的html表单的Submit按钮后,我们如何执行或运行python代码。

以下是index.php代码:

<!DOCTYPE html>
   <head>
      <title>Hello</title>
   </head>

   <body>
      <form action="" method="POST">
        <input type="text" name="nopol">
        <input id="print_nopol" type="submit">
      </form>

     <?php
        system("python /home/pi/python-epson-printer/epson_printer/testpage.py");
     ?>
   </body>
</html>

及以下是名称为app.py的python flask应用程序脚本:

from flask import Flask, request, render_template, Response, redirect, url_for
from os import listdir
app = Flask(__name__)

@app.route('/')
def my_form():
    return render_template('index.html')

@app.route('/', methods=['POST'])
def my_form_post():
    input_nopol = request.form['nopol']
    if request.method == 'POST':
       with open('nopol.txt', 'w') as f:
            f.write(str(input_nopol))
    return render_template('index.html', nopol=input_nopol)

if __name__ == "__main__":
   app.run(host='192.168.1.2', port=8080, debug=True)

此python代码具有将数据插入.txt文件的功能,这是python脚本路径:

/home/pi/server_print/print.py

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你可以使用这个:

将此写入服务器文件:

from os import system as call

@server.route('/run_python_file', methods=['POST'])
def run_python_file():
    call('python /home/pi/python-epson-printer/epson_printer/testpage.py')

    return 'OK'

将其插入到 HTML 文件中:

<form action="/run_python_file" method="POST">
    <input type="text" name="nopol">
    <input id="print_nopol" type="submit">
</form>
<块引用>

请注意,您可以使用以下代码行访问文本框 (nopol) 的内容:

textbox = request.form['nopol']