Python CGI

Python CGI

Python CGI

什么是CGI

CGI(通用网关接口)是一种用于在Web服务器上执行外部程序的标准。当浏览器请求 CGI 程序时,服务器会调用该程序并将输出返回给浏览器。Python也可以用来编写CGI脚本,用于处理Web服务器上的动态内容。

搭建Python CGI 环境

要在Web服务器上运行Python CGI脚本,首先需要确保服务器支持CGI,并且Python解释器已经安装在服务器上。接下来,我们可以编写一个简单的Python CGI脚本,示例代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print("Content-type: text/html\n")
print("<html><head><title>CGI Test</title></head></html>")
print("<body>")
print("<h1>Hello, deepinout.com!</h1>")
print("</body></html>")

在上面的示例代码中,我们创建了一个简单的Python CGI脚本,用于在浏览器上显示”Hello, deepinout.com!”。接下来,我们将该脚本命名为hello.py并上传到Web服务器的CGI目录中。在浏览器中访问http://yourdomain.com/cgi-bin/hello.py,您将看到显示在页面上的”Hello, deepinout.com!”。

传递参数给 Python CGI

除了简单的输出文本,Python CGI 还可以接受来自浏览器的参数。示例代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import cgi

form = cgi.FieldStorage()
name = form.getvalue('name')

print("Content-type: text/html\n")
print("<html><head><title>CGI Test</title></head></html>")
print("<body>")
print(f"<h1>Hello, {name} from deepinout.com!</h1>")
print("</body></html>")

在上面的示例代码中,我们从浏览器中获取名为name的参数,并在页面上显示Hello, name from deepinout.com!。您可以在浏览器中访问http://yourdomain.com/cgi-bin/hello.py?name=Python,您将看到显示在页面上的”Hello, Python from deepinout.com!”。

CSS 样式和 Python CGI

Python CGI 也可以与CSS样式一起使用,实现更加美观的页面布局。示例代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print("Content-type: text/html\n")
print("<html><head><title>CGI Test</title>")
print("<style>")
print("h1 {color: blue;}")
print("p {font-size: 16px;}")
print("</style></head></html>")
print("<body>")
print("<h1>Hello, deepinout.com!</h1>")
print("<p>Welcome to Python CGI tutorial.</p>")
print("</body></html>")

在上面的示例代码中,我们通过CSS样式设定了h1p标签的颜色和字体大小。您可以在浏览器中访问http://yourdomain.com/cgi-bin/hello.py,您将看到一个带有样式效果的页面。

文件上传和 Python CGI

Python CGI 还可以处理文件上传的功能。示例代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import cgi

form = cgi.FieldStorage()

if "file" in form:
    fileitem = form["file"]

    if fileitem.file:
        fname = fileitem.filename
        with open(fname, 'wb') as f:
            f.write(fileitem.file.read())

        print("Content-type: text/html\n")
        print("<html><head><title>File Upload</title></head></html>")
        print("<body>")
        print(f"<h1>File {fname} uploaded successfully!</h1>")
        print("</body></html>")

else:
    print("Content-type: text/html\n")
    print("<html><head><title>File Upload</title></head></html>")
    print("<body>")
    print("<h1>File upload failed!</h1>")
    print("</body></html>")

在上面的示例代码中,我们编写了一个简单的文件上传处理程序。当用户上传文件时,Python CGI 将保存文件到服务器上,然后显示”File uploaded successfully!”。您可以在浏览器中访问一个带有文件上传表单的页面,然后选择文件上传,即可触发Python CGI脚本的执行。

总结

通过本文的介绍,我们了解了Python CGI的基本概念和用法,包括搭建Python CGI环境、传递参数、使用CSS样式和处理文件上传。Python CGI 是一个强大的工具,可以用于创建动态的Web应用程序。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程