将html表单值导入python文件

时间:2019-07-03 10:11:01

标签: python html

我有一个用html5开发的python操作的前端,它从中获取必要的输入。我无法将输入传递给python代码。我尝试使用cgi,但是它只是在浏览器上打印我的python代码。请帮忙。

我的html代码index.html:

`<body>
<form name="inputs" action="../testProj/testcgipy.py" method="get">
Enter name: <input type="text" name="tbox"> <input type="submit" 
value="Submit">
</form>
</body>`

我的python代码testcgipy.py:

import cgi
form= cgi.FieldStorage()
val= form.getvalue('tbox')

print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Hello  CGI Program</title>"
print "</head>"
print "<body>"
print "<h2>Hello %s </h2>" % (val)
print "</body>"
print "</html>"

1 个答案:

答案 0 :(得分:0)

最好为应用程序使用适当的HTTP服务器。 Flaskbottle等都是出色的轻量级解决方案。

满足您需求的概念证明:

from bottle import request, route, template, redirect, run

@route('/')
def home():
    html = '''
    <form method='get' action='/query'>
        Enter name: <input name='name'>
        <br>
        <button>Send</button>
    </form>
    '''
    return template(html)

@route('/query')
def query():
    name = request.query['name'] or None
    if not name:
        return redirect('/')
    things = get_all_things(name)

    html = '''
        % for item in things:
            <p>{{item}}</p>
        % end
    '''
    return template(html, things=things)

def get_all_things(name: str):
    return [name, 'another thing']


if __name__ == "__main__":
    run()

此服务器可为您提供位于localhost:8080的服务器:
homepage

提交表格时:
result page