如何在网页中运行Python脚本
我刚开始学习Python,对它的了解还很有限。
我写了下面的代码(在Python的IDLE环境中):
print "Hi Welcome to Python test page\n";
print "Now it will show a calculation";
print "30+2=";
print 30+2;
然后我把这个页面保存在我的本地电脑上,文件名是index.py
我尝试通过以下链接运行这个脚本:
http://localhost/index.py
但是它没有显示我执行的Python脚本,反而把上面的代码当作HTML显示出来了。问题出在哪里呢?我该如何在网页上运行一个Python文件呢?
6 个回答
使用Python中的Flask库,你可以做到这一点。记得把你的HTML页面存放在一个名为“templates”的文件夹里,这个文件夹要放在你运行Python脚本的同一位置。
所以你的文件夹结构应该是这样的:
- templates(这个文件夹里放你的HTML文件)
- 你的Python脚本
下面是一个简单的Python脚本示例。这个脚本的作用是检查抄袭。
from flask import Flask
from flask import request
from flask import render_template
import stringComparison
app = Flask(__name__)
@app.route('/')
def my_form():
return render_template("my-form.html") # This should be the name of your HTML file
@app.route('/', methods=['POST'])
def my_form_post():
text1 = request.form['text1']
text2 = request.form['text2']
plagiarismPercent = stringComparison.extremelySimplePlagiarismChecker(text1,text2)
if plagiarismPercent > 50 :
return "<h1>Plagiarism Detected !</h1>"
else :
return "<h1>No Plagiarism Detected !</h1>"
if __name__ == '__main__':
app.run()
这是一个小的HTML文件模板,用来展示内容:
<!DOCTYPE html>
<html lang="en">
<body>
<h1>Enter the texts to be compared</h1>
<form action="." method="POST">
<input type="text" name="text1">
<input type="text" name="text2">
<input type="submit" name="my-form" value="Check !">
</form>
</body>
</html>
这里有一个简单的方法,可以用来比较两个字符串,而且这个方法可以很容易地根据你的需求进行修改。
正如其他人提到的,Python有很多网页框架。
不过,既然你刚开始学习Python,写一个简单的CGI脚本可能更合适:
把你的脚本重命名为
index.cgi
。你还需要执行chmod +x index.cgi
来给它执行权限。在文件的开头添加这两行:
#!/usr/bin/python print('Content-type: text/html\r\n\r')
这样一来,Python代码就可以像在终端里运行一样,只不过输出会显示在浏览器里。当你把这个搞定后,可以使用 cgi模块 从浏览器获取数据。
注意:这假设你的网络服务器是在Linux上运行的。如果是在Windows上, #!/Python26/python
可能会更合适。
要让你的代码能够显示出来,你需要几个东西:
首先,你需要一个能够处理HTTP请求的服务器。目前你只是用Firefox打开本地硬盘上的文件,这样是无法显示的。你需要像Apache这样的服务器,或者其他类似的服务器。
其次,假设你现在有了一个可以提供文件的服务器,你还需要一个能把代码当作Python代码来解释的东西。对于Python用户来说,现在的推荐方案是mod_wsgi。不过如果你的需求比较简单,可以使用CGI(更多信息可以在这里找到),但如果你想更轻松地制作网页,建议使用现成的Python网页框架,比如Django。
设置这些东西可能会有点麻烦,所以要做好心理准备。