Python 创建简单cgi web服务器

编写简单cgi web服务器

创建简单cgi web服务的方法有两种,一种是命令行方式,还有一种通过运行python文件方式:

  1. 可以通过执行python3 -m http.server --cgi 8000命令创建一个8000端口的简单web服务。
  2. 也可以通过文件创建一个cgi服务器,名为http_server.py:
from http.server import HTTPServer, CGIHTTPRequestHandler

PORT = 8000

with HTTPServer(("", PORT), CGIHTTPRequestHandler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()

执行python3 http_server.py命令,运行这个web服务器:

# python3 http_server.py 
serving at port 8000

提示运行在8000端口上,服务即可运行。

编写cgi脚本

在当前运行web服务的cgi-bin/里,创建一个date.py文件,内容如下:

#!/usr/bin/env python3
import os
result = os.popen("date").read()

content = f"""
<html>
  <body>
  {result}
  </body>
</html>
"""

print(content)

给这个文件增加x执行权限

chmod +x date.py

浏览器访问

通过浏览器或curl命令,打开http://:8000/cgi-bin/date.py,即可看到命令的运行结果,运行多次看到多次不同的运行结果。

# curl http://192.168.50:8000/cgi-bin/date.py
<html>
  <body>
  Fri  9 Dec 17:50:37 CST 2022

  </body>
</html>

# curl http://192.168.50:8000/cgi-bin/date.py
<html>
  <body>
  Fri  9 Dec 17:50:42 CST 2022

  </body>
</html>


内容输出正常。


其他

如果只需要创建一个简单的http服务:

  1. 可以执行python3 -m http.server 8000启动
  2. 也可以可以这样启动:
from http.server import HTTPServer, SimpleHTTPRequestHandler

PORT = 8000

with HTTPServer(("", PORT), SimpleHTTPRequestHandler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()

简单http服务,会完全把文件内容输出,不会运行文件。也可以用来创建个临时的web文件下载服务器。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python CGI是一种通用网关接口,用于在Web服务器上运行外部程序(通常是脚本程序)。CGI程序可以在Web服务器上生成动态内容,例如网页表单的处理、数据库查询和图像生成。在Python中,CGI编程可以使用内置的CGI模块来实现。这个模块提供了一些函数,可以方便地处理CGI请求和响应。使用CGI模块,可以将Python程序作为CGI脚本在Web服务器上运行,并且可以与Web服务器进行交互,获取HTTP请求参数、设置HTTP响应头部和发送HTTP响应内容等。要编写Python CGI程序,需要在Web服务器上安装Python解释器,并将CGI脚本放置在Web服务器CGI目录中。在Python中,可以导入cgi模块和CgiHTTPServer模块来实现CGI编程。另外,可以使用命令行启动cgi服务来运行CGI脚本。123 #### 引用[.reference_title] - *1* [一文理解 Python CGI](https://blog.csdn.net/mynewdays/article/details/125651783)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* [Python CGI编程](https://blog.csdn.net/smarten57/article/details/130773033)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [35.从入门到精通:Python CGI编程 什么是CGI 网页浏览 CGI架构图 Web服务器支持及配置 第一个CGI程序 HTTP...](https://blog.csdn.net/weixin_63740705/article/details/131381933)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值