《python》学习笔记(Day8),采用MVC模式的Web应用例子(续+)
来源:互联网 发布:马王堆女尸 知乎 编辑:程序博客网 时间:2024/05/02 04:16
第三部分 运行Webapp
一、Web服务器。
所有的Web应用需要在Web服务器上运行,所以,首先要构建一个Web服务器。下面,使用Python所提供的Web服务器,代码如下,名为simplehttpd.py,放在Webapp文件夹目录下。
from http.server import HTTPServer, CGIHTTPRequestHandler #导入http服务器,和CGI模块
port = 8080 #指定端口
httpd = HTTPServer(('', port), CGIHTTPRequestHandler) #创建http服务器
print("Starting simple_httpd on port: " + str(httpd.server_port))
httpd.serve_forever() #启动服务器
二、CGI脚本。
什么是CGI脚本?
CGI允许Web服务器运行服务器端程序。只有执行CGI脚本,Web服务器才能对Web请求作出Web响应。
Web请求:是用户在Web浏览器中输入的一个地址、选择的一个超链接、按下的一个按钮等,浏览器将这些动作转换为Web请求。
Web响应:是Web服务器针对一个 Web请求所作出的反应,主要分为两种情况:返回文件资源(静态响应)和运行程序(动态响应)。第一种情况下,所生成的 Web响应就是服务器硬盘上的某个文件;第二种情况下,所生成的Web响应就是某个程序的输出。
第二种响应过程包括:找到程序、执行程序、捕捉程序输出,这种动态过程已经标准化,即是CGI(通用网关接口:Common Gateway Interface)。把符合这个标准的程序就称为CGI脚本。
#! /usr/local/bin/python2
import athletemodel #第一部分的模块,属于Model组件,包含处理文件数据、创建字典、pickle文件的函数。
import yate # 第二部分模块,属于模板组件,主要包含生成Html的函数。
import glob #向操作系统查找匹配的文件
data_files = glob.glob("data/*.txt") #查找data中的一个txt文件列表
athletes = athletemodel.put_to_store(data_files) # 将文件列表存为字典,并生成pickle文件,返回值为字典,字典的key=实例.name
print(yate.start_response()) #默认的CGI响应首部:txt/html,说明Web请求中包含的数据类型
print(yate.include_header("Coach Kelly's List of Athletes")) #Web页面标题:Coach Kelly's List of Athletes
print(yate.start_form("generate_timing_data.py")) # 指定要链接的服务器端程序的名generate_timing_data.py,表单数据发送到这个程序
print(yate.para("Select an athlete from the list to work with:")) #页面显示一个文本块
for each_athlete in athletes:
print(yate.radio_button("which_athlete", athletes[each_athlete].name)) #创建页面上的单选按钮,单选钮列表来自字典
print(yate.end_form("Select")) #创建一个提交按钮
print(yate.include_footer({"Home": "/index.html"})) #Web页面末尾,提供链接为index.html
三、启动服务器测试CGI脚本。
windows上运行。
- 《python》学习笔记(Day8),采用MVC模式的Web应用例子(续+)
- 《python》学习笔记(Day7),采用MVC模式的Web应用例子(续)
- 《python》学习笔记(Day6),采用MVC模式的Web应用例子
- Python廖雪峰实战web开发(Day8-构建前端)
- JAVA视频笔记(day8)
- python学习日志--day8
- 《创建第一个采用 JavaScript 的 Windows 应用商店应用》学习笔记(一)
- java学习笔记day8
- Android学习笔记day8
- ExtJs4学习(十一)MVC应用模式
- Python的学习笔记DAY8---爬虫练习之煎蛋网妹子图爬虫
- struts2学习笔记(一) MVC模式
- struts2学习笔记(一) MVC模式
- MVC 框架模式(学习笔记)
- werkzeug实现简单Python web框架(1):MVC模式
- 机器学习学习笔记.day8
- 自学 java 笔记 day8(继承下)
- python笔记15--django之web(MVC模式)
- 一步一步学List Control控件的用法(第一步)----创建第一列
- log4j源码解析
- webview缓存及跳转时截取url地址、监听页面变化
- Android Service更多的技巧
- Android 图片高斯模糊处理
- 《python》学习笔记(Day8),采用MVC模式的Web应用例子(续+)
- 8 个最优秀的 Android Studio 插件
- MAC下查找所有指定名字的文件并执行相应命令
- iOS开发系列--UITableView全面解析
- UIUC大学之Coursera课程Text Retrieval and Search Engines:Week 4 Quiz
- HDU 2013:蟠桃记
- c++避免隐式转换
- eclipse左边导航(菜单栏)package explorer自动定位(跟随打开的代码变化位置)、导航栏消失找不到解决
- matlab字符串的常用操作