Python实现简单的Web(续)
写的有点乱。。希望大神指教~~Python的缩进可真的将我缠了好久,想起我们班大神说缩进也是代码啊。。
修改之前的代码来显示请求的信息,同时重新整理一下代码:
class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
# ... 页面模板 ...
Page=".. 待设计.."
def do_GET(self):
page = self.create_page()
self.send_content(page)
def create_page(self):
# ... 待实现 ...
pass
def send_content(self, page):
# ... 待实现 ...
pass
send_content 与之前 do_GET 内的代码一样:
def send_content(self, page):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.send_header("Content-Length", str(len(page)))
self.end_headers()
self.wfile.write(page)
设计页面模版
# 页面模板
Page = '''\
<html>
<body>
<p>Hello, this is my web!</p>
<table border=1s>
<tr> <td>Header</td> <td>Value</td> </tr>
<tr> <td>Date and time</td> <td>{date_time}</td> </tr>
<tr> <td>Client host</td> <td>{client_host}</td> </tr>
<tr> <td>Client port</td> <td>{client_port}</td> </tr>
<tr> <td>Command</td> <td>{command}</td> </tr>
<tr> <td>Path</td> <td>{path}</td> </tr>
</table>
</body>
</html>
'''
实现 create_page
def create_page(self):
values = {
'date_time': self.date_time_string(),
'client_host': self.client_address[0],
'client_port': self.client_address[1],
'command': self.command,
'path': self.path
}
page = self.Page.format(**values)
return page
main 中的内容不用去修改它
结果。。。运行的结果是这样的。。

并没有返回正确信息。。。泪崩。。
先去解决错误了。。待会儿补上。。
啊啊啊,终于终于找到问题的根源所在了!!!!好激动好激动。
其实,出现上面的501的错误就是自己的代码有错误,代码错误,代码错误!!!如果不仔细检查的话,就一直深陷与此而止步了!!
在隔了一周将Java数据库编程和UML图书馆管理系统的bug测完后,将拉了一周的Python错误在今天就补上了。
回归正题:出现上述错误页面的原因如下:
1.首先要确定你的Python安装版本:
因为Python27与Python3.X中的网络编程还是有差异的。
我刚刚开始觉得是版本问题,于是在自己的电脑上装了Python2.7和Python3.6两个版本,
然后在又装了PyCharm这个美丽的IDE,相互调换着调试,最终决定用27版本的,然后将代码
一步一步认真的检查了后发现自己将
send_content在后面的调用中误写为sendContent。。。。。悲哀。。。所以最终认认真真改完代码就好了。
下篇正式将搭建的WEB写出来。
Python实现简单的Web(续)的更多相关文章
- Python 实现简单的 Web
简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...
- python超简单的web服务器
今天无意google时看见,心里突然想说,python做web服务器,用不用这么简单啊,看来是我大惊小怪了. web1.py 1 2 3 #!/usr/bin/python import Simp ...
- python 最简单的web应用(一)
对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. server.py文件 #!/usr/bin/env python # -*- coding: ...
- Python实现简单的Web完整版(一)
在拖了一周之后,今天终于在一个小时之内将一个迷你的Web写出来了,最近改其它项目的bug头好大,但是好喜欢这样的状态. 黑色的12月,所有的任务都聚集在了12月,然后期末考试也顾不上好好复习了,但是但 ...
- Python实现简单的Web服务器 解析
代码来源https://www.shiyanlou.com/courses/552,对它进行理解,注释 #-*- coding:utf-8 -*- import BaseHTTPServer clas ...
- python一个简单的web服务器和客户端
服务器: 当客户联系时创建一个连接套接字 从这个连接接收HTTP请求(*) 解释该请求所请求的特定文件 从服务器的文件系统获取该文件 并发送文件内容 ...
- 用Python建立最简单的web服务器
利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认8000] 例如: python -m ...
- 用Python写一个简单的Web框架
一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...
- 使用python命令构建最简单的web服务
可以使用python自带的包建立最简单的web服务器,使用方法: 1)切换到服务器的根目录下 2)输入命令: python -m SimpleHTTPServer 3)使用wget或者在浏览器访问测试 ...
随机推荐
- 神秘代理-Proxy
前言: 代理模式作为常见的设计模式之一,在项目开发中不可或缺.本文就尝试着揭开代理的神秘面纱,也欢迎各路人批评指正! 1.如何实现代理: [假设有个关于汽车移动(move)的计时需求]设计:Movea ...
- 【BZOJ-4380】Myjnie 区间DP
4380: [POI2015]Myjnie Time Limit: 40 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 162 Solved: ...
- 未知宽度的div水平居中
淘宝分页: div{position:relative; left:50%; float:left;} p{position:relative; left:-50%;}
- layer弹出框小结
1.layer.open() // 1.打开弹出层 layer.open({ type:1, //基本层类型 icon:, //图标 content:'请核对信息!', //内容 shade:0.3, ...
- sublime 中 pyv8 binary 报错怎么处理?
,sublime text 在安装插件的时候,尤其是Emmet的时候,经常会报一个错误--please wait a bit whilePyV8 binary is being downloaded, ...
- mysql二级索引
以InnoDB来说,每个InnoDB表具有一个特殊的索引称为聚集索引.如果您的表上定义有主键,该主键索引是聚集索引.如果你不定义为您的表的主键 时,MySQL取第一个唯一索引(unique)而且只含非 ...
- ubuntu mysql使用
用navicat远程连不上mysql,提示10061错误解决办法: 修改/etc/mysql/my.cnf文件,找到127.0.0.1行,注释该行 命令:vi my.cnf 按i键进入编辑模式 编辑完 ...
- jQuery导入Eclipse后报错解决方法
使用Eclipse 3.7及以上版本时,工程中加入jquery.min.js文件,发现该文件出现错误提示(红×),但使用Eclipse 3.7以前的版本就不会出现这种提示.是因为Eclips ...
- 如何使用跨平台工具创建 NuGet 包(转)
原文地址 https://docs.microsoft.com/zh-cn/dotnet/articles/core/deploying/creating-nuget-packages 内容 对于 . ...
- svn: E200007: Runner for 'org.tmatesoft.svn.core.wc2.SvnMerge' command have not been found; probably not yet implement in this API.
myeclipse分支合并主干(分支->team->合并->选择主干)的时候出现这个错误: svn: E200007: Runner for 'org.tmatesoft.svn.c ...