python基于CGI的web应用开发

用一个“网上水果店”的web应用示例,简要介绍如何用Python实现基于CGI标准的Web应用,介绍python的cgi模块、cigtb模块对编写CGI脚本提供的支持。

 

CGI简介

CGI Common Gateway Interface (通用网关接口),是一个Internet标准,允许Web服务器运行一个服务器端程序,称为CGI脚本。一般的,CGI脚本都放在一个名为cgi-bin的特殊文件夹内,这样web服务器就知道到哪里查找cgi脚本。

 

 

“网上水果店”Web应用目录结构见下图(详细代码请见https://download.csdn.net/download/HXiao0805/12982878)

(操作系统:win10;python版本:3.6.2)

1、Web服务器

所有的Web应用都要在Web服务器上运行,实际上所有的web服务器都支持CGI,无论是Apache、IIS、nginx、Lighttpd还是其他服务器,它们都支持用python编写的cgi脚本。这些web服务器都比较强大,这里我们使用python自带的简单的web服务器,这个web服务器包含在http.server库模块中。

run_server.py:

运行此程序,即启动此web应用。

# -*- coding: utf-8 -*-
"""
Created on Wed Sep  9 09:38:52 2020
Web服务器
所有的Web应用都要在Web服务器上运行,
实际上所有的web服务器都支持CGI,
无论是Apache、IIS、nginx、Lighttpd还是其他服务器,
它们都支持用python编写的cgi脚本。这些web服务器都比较强大,
这里我们使用python自带的简单的web服务器,
这个web服务器包含在http.server库模块中。
@author: hanxiao
"""
from http.server import HTTPServer, CGIHTTPRequestHandler

port = 8099

httpd = HTTPServer(('', port), CGIHTTPRequestHandler)
print("Starting simple_httpd on port: " + str(httpd.server_port))
httpd.serve_forever()

 

2、index.html

首页;URL: “http://localhost:8099/cgi-bin/fruit_list_view.py” 将调用 cgi-bin文件夹下的fruit_list_view.py

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FruitStore</title>
</head>
<body>
<h1>Welcome to fruit Store.</h1>
<img src="resource/fruit.png">
<h3>
This is a fruit store,it has some books,please choose your favorite fruit, then click <a href="cgi-bin/fruit_list_view.py">here</a>.(这是一家水果商店,里面有一些水果,请选择你喜欢的进行查看,现在开始吧!)
</h3>
<p>
<strong> Now Enjoy!</strong>
</p>
</body>
</html>
<!--首页;URL: “http://localhost:8099” 将调用 cgi-bin文件夹下的book_list_view.py-->
 

3、fruit_list_view.py

图书清单页面。用户选择要查看的图书,提交表单,然后调动图书详细界面。

4、yate.py

自定义的简单模板,用于快捷生成html

5、fruit_detail_view.py

图书详细页面

6、Fruit.py

图书类

7、fruit_service.py

图书业务逻辑类

8、fruit.txt

待显示的水果信息(名称;产地;价格)

香蕉;海南;$123.01
苹果;辽宁;$32.23
橘子;河南;$45.88
山竹;海南;$87.99
水晶梨;浙江;$71
火龙果;Canada;$89.56
葡萄;辽宁;$91

 

测试结果:

喜欢我的文章希望和我一起成长的宝宝们,可以搜索并添加公众号TryTestwonderful ,或者扫描下方二维码添加公众号

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半夏映浮光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值