如何在网页中运行Python脚本

77 投票
6 回答
336022 浏览
提问于 2025-04-17 02:32

我刚开始学习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 个回答

20

使用Python中的Flask库,你可以做到这一点。记得把你的HTML页面存放在一个名为“templates”的文件夹里,这个文件夹要放在你运行Python脚本的同一位置。

所以你的文件夹结构应该是这样的:

  1. templates(这个文件夹里放你的HTML文件)
  2. 你的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>

这里有一个简单的方法,可以用来比较两个字符串,而且这个方法可以很容易地根据你的需求进行修改。

25

正如其他人提到的,Python有很多网页框架。

不过,既然你刚开始学习Python,写一个简单的CGI脚本可能更合适:

  1. 把你的脚本重命名为 index.cgi。你还需要执行 chmod +x index.cgi 来给它执行权限。

  2. 在文件的开头添加这两行:

#!/usr/bin/python   
print('Content-type: text/html\r\n\r')

这样一来,Python代码就可以像在终端里运行一样,只不过输出会显示在浏览器里。当你把这个搞定后,可以使用 cgi模块 从浏览器获取数据。

注意:这假设你的网络服务器是在Linux上运行的。如果是在Windows上, #!/Python26/python 可能会更合适。

56

要让你的代码能够显示出来,你需要几个东西:

首先,你需要一个能够处理HTTP请求的服务器。目前你只是用Firefox打开本地硬盘上的文件,这样是无法显示的。你需要像Apache这样的服务器,或者其他类似的服务器。

其次,假设你现在有了一个可以提供文件的服务器,你还需要一个能把代码当作Python代码来解释的东西。对于Python用户来说,现在的推荐方案是mod_wsgi。不过如果你的需求比较简单,可以使用CGI(更多信息可以在这里找到),但如果你想更轻松地制作网页,建议使用现成的Python网页框架,比如Django。

设置这些东西可能会有点麻烦,所以要做好心理准备。

撰写回答