深入了解一下PYTHON中关于SOCKETSERVER的模块-B

请求多个文件的原型。

这个是最草的情况,就是硬编码到内存中的字符串,

真实的应用还是会转到其它端口处理,或是读到硬盘上的文件吧。

#!/usr/bin/env python

from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
import time

starttime = time.time()

class RequestHandler(BaseHTTPRequestHandler):
    """Definintion of the request hadnler."""
    def _writeheaders(self, doc):
        """Write the HTTP headers for the document. If there is no
        documnet, send a 404 error code;"""
        if doc is None:
            self.send_response(404)
        else:
            self.send_response(200)
        #Always server up HTML for now.
        self.send_header(‘Content-type‘, ‘text/html‘)
        self.end_headers()

    def _getdoc(self, filename):
        """Handle a request for a document """
        global starttime
        if filename == ‘/‘:
            return """
                    <HTML><HEAD><TITLE>sample python page</TITLE></HEAD>
                    <BODY> THIS IS A SAMPLE PAGE.
                    </BODY></HTML>
                    """
        elif filename == ‘/stats.html‘:
            return """
                    <HTML><HEAD><TITLE>Status</TITLE></HEAD>
                    <BODY> This server has veen running for %d seconds.
                    </BODY></HTML>
                    """ % int(time.time() - starttime)
        else:
            return None

    def do_HEAD(self):
        """Handle a request for headers only"""
        doc = self._getdoc(self.path)
        self._writeheaders(doc)

    def do_GET(self):
        """Handle a request for headers and body"""
        doc = self._getdoc(self.path)
        self._writeheaders(doc)
        if doc is None:
            self.wfile.write("""
            <HTML><HEAD><TITLE>Not found</TITLE></HEAD>
            <BODY> The requested document ‘%s‘ was not found.
            </BODY></HTML>""" % self.path)
        else:
            self.wfile.write(doc)
serveraddr = (‘‘,8765)
srvr = HTTPServer(serveraddr, RequestHandler)
srvr.serve_forever()

时间: 2024-10-31 17:50:26

深入了解一下PYTHON中关于SOCKETSERVER的模块-B的相关文章

深入了解一下PYTHON中关于SOCKETSERVER的模块-D

在LINUX上以FORK的方式使用SIMPLEHTTPSERVER. 记得哟,THREADING能在WIN和LINUX上实现,但FORK,不支持WIN的. 除了SIMPLE之外,还有CGI,就不示例啦. #!/usr/bin/env python from BaseHTTPServer import HTTPServer from SimpleHTTPServer import SimpleHTTPRequestHandler from SocketServer import ForkingMi

深入了解一下PYTHON中关于SOCKETSERVER的模块-A

有了这块知识,应该对各类WEB框架有更好的理解吧..FLASK,DJANGO,WEBPY.... #!/usr/bin/env python from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler class RequestHandler(BaseHTTPRequestHandler): def _writeheaders(self): self.send_response(200) self.send_header('Cont

在python中扩展c语言模块

有一个以前写的c语言代码,我想把它用在python程序中.我先是看了<python基础教程>一书中的方法,书中说可以用swig加python内置distutils模块的方法来实现.我照着书上的步骤试了试,结果在导入模块的时候总是提示"ImportError: dynamic module does not define init function (initprintf)".起初我以为是so文件没有放对位置.但是我试着在目录中建立了一个简单的python模块,然后再导入,发

python中的堆排序peapq模块

heapq模块实现了python中的堆排序,并提供了有关方法.让用Python实现排序算法有了简单快捷的方式. heapq的官方文档和源码:8.4.heapq-Heap queue algorithm 下面通过举例的方式说明heapq的应用方法 实现堆排序 #! /usr/bin/evn python #coding:utf-8 from heapq import * def heapsort(iterable): h = [] for value in iterable: heappush(h

python中根据字符串导入模块module

python中根据字符串导入模块module 需要导入importlib,使用其中的import_module方法 import importlib modname = 'datetime' datetime_module = importlib.import_module(modname) print(datetime_module) # <module 'datetime' from 'C:\\Users\\huchengyue\\AppData\\Local\\Programs\\Pyth

python中time、datetime模块的使用

目录 python中time.datetime模块的使用 1.前言 2.time模块 1.时间格式转换图 2.常用方法 3.datetime模块 python中time.datetime模块的使用 1.前言 如果您从事过python web的开发,那一定有过这样的经历,对于各种复杂繁琐的业务逻辑,掺杂着各种各样的时间约束,让人很容易搞的头晕眼花,比如展示出一天内用户进行过的所有操作记录,再比如进行验证码验证时获取当前时间与验证码生成时间进行比较,检查是否超过10分钟过期时间之类.这些关于时间的业

python中使用time时间模块

目的:学习python中time模块,可以获取当前时间或时间段 环境:ubuntu 16.04  python3.5.2 time模块,为内置模块,可以用来获取当前时间.日期,还可以设置延迟或倒计时. 使用前需导入模块 import time 常用的方法有:sleep(), strftime(), ctime() sleep(t),设置t的数字,单位为秒,可以有小数点,理解为延迟执行的秒数. time.sleep(5) 等待5秒后继续执行下面的语句. strftime(''),格式输出当前时间,

Python中xlrd和xlwt模块使用方法

本文主要介绍python中如何使用xlrd.xlwt模块操作excel表格,其中xlrd是读excel,xlwt是写excel的库. 安装xlrd和xlwt模块 默认情况下python是没有xlrd和xlwt模块,需要自行安装.模块安装建议使用pip自动安装.安装方法参考<Python自动安装第三方模块> xlrd模块使用 测试使用excel文档名称为Demo.xlsx,内容如下: 代码如下: # -*- coding: utf-8 -*- import xlrd import xlwt fr

Python中的正则表达式-re模块

有时候我们需要模糊查找我们需要的字符串等值,这个时候需要用到正则表达式. 正则表达式的使用,在python中需要引入re包 import re 1.首先了解下正则表达式的常用语法 --单个字符 . 任意的一个字符 a|b 字符a或字符b [afg] a或者f或者g的一个字符 [0-4] 0-4范围内的一个字符 [a-f] a-f范围内的一个字符 [^a] 不是a的一个字符 \s 一个空格 \S 一个非空格 \d [0-9],即0-9的任意字符 \D [^0-9],即非0-9的任意字符 \w [0