将字符串从 html 传递到 python 脚本

Pass string from html to python script

我需要帮助,我有一个 Python 脚本可以执行一些工作并打印 html 网页。 我需要将字符串从输出的网页传递给该脚本。 那可能吗 ? 将来我想使用单选按钮,用户可以在其中使用大量数据来根据预定义的数据进行绘图。 感谢您的任何建议...

我的代码:

#!/usr/bin/env python 
# -*- coding: UTF-8 -*-
# enable debugging
import cgitb
cgitb.enable()
import subprocess
import os

print "Content-type: text/html\n\n";
web = """

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>

</head>
<body>
    <div id='wrapper'>
        <div id='header'>

        </div>

        <div id='content'>
            <div class='content'>
                <div><h3>GRAPH</h3></div>
                <br>
                <div style='height:520px;width:1000px;overflow:scroll;overflow-x:auto;overflow-y:hidden;'>
                    <img src='http://localhost/steps.png' alt='image' />
                </div>
                <br>    
                <button onclick="myFunction()">REFRESH</button>
                <script>
                    function myFunction() {
                    location.reload();
                    }
                </script>

                <br>

                <form action='/cgi-bin/test.py' method='post'>
                    nazov suboru: <input type='text' data='data'> <br />
                <input type='submit' value='Submit' />
                </form>


            </div>
        </div>
    </div>          
</body>
</html>
"""

print web
proc = subprocess.Popen(['gnuplot','-p'], 
                        shell=True,
                        stdin=subprocess.PIPE,
                        )

proc.communicate("""
reset
set terminal pngcairo enhanced size 3000,500 font 'Arial,11' rounded; 
set output '/opt/lampp/htdocs/%s.png'

set datafile separator "|"
plot \
\
'%s.txt' u 0:3 sm cs w l ls 1  t 'X-suradnice',\
'%s.txt' u 0:4 sm cs w l ls 2  t 'Y-suradnice',\
'%s.txt' u 0:5 sm cs w l ls 3  t 'Z-suradnice'
"""%(data,data,data,data)) 

您的问题很难理解,但我认为您正在尝试弄清楚如何访问表单 POST 提交的 data 参数。您可以使用 cgi 模块来做到这一点:

import cgi
form = cgi.FieldStorage()
data = form.getvalue('data')