带有Python后台的Web界面
我用Python开发了一个简单的应用程序(使用Tkinter界面)。现在我想为这个应用程序提供一个网页界面。我知道Python脚本会在服务器上作为CGI运行。但我希望所有操作都在同一页面上进行,也就是说,想要实现这样的功能:
- 用户可以在一个文本框中输入内容
- 当点击提交按钮时,Python脚本会根据输入内容运行并生成输出
- 输出会在同一页面上显示,而不会重新加载页面
我觉得可以用Ajax来实现这个功能(如果这是唯一的方法,我会去学习它),但有没有更简单的方法呢?我尝试过在Python中生成前端,并将按钮链接到同一个脚本中的一个函数,但那样不行……
谢谢
附注:如果标题和标签有点误导,我很抱歉……我不太确定该选什么……
编辑:我尝试了这个,但不行
#!/usr/bin/python2
import cgi
print 'Content-type: text/html'
print """
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
"""
data = cgi.FieldStorage()
sometext = data['sometext'].value
if sometext != '':
print "<p>" + sometext + "</p>"
print """
<form action="test.py" method="post">
<input type="text" name="sometext">
<input type="submit">
</form>
</body>
</html>
"""
1 个回答
0
我刚刚意识到,上面的代码需要使用 getvalue 函数。把这个代码保存为 test.cgi 后,我从我的 public_html 目录(这个目录里存放着我所有的网页文件)运行它,结果就成功了。
#!/usr/bin/python3
import cgi
print( 'Content-type: text/html')
print( """
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
""")
data = cgi.FieldStorage()
sometext = data.getvalue('sometext', '')
if sometext != '':
print( "<p>" + sometext + "</p>")
print( """
<form action="test.cgi" method="post">
<input type="text" name="sometext">
<input type="submit">
</form>
</body>
</html>
""")