用一个“网上水果店”的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
FruitStore
Welcome to fruit Store.
This is a fruit store,it has some books,please choose your favorite fruit, then click here.(这是一家水果商店,里面有一些水果,请选择你喜欢的进行查看,现在开始吧!)
Now Enjoy!
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 ,或者扫描下方二维码添加公众号