python server

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# (c) UbuntuChina, http://www.ubuntu.org.cn
# (c) free software, GPLv3
# Connect: [email protected]
import BaseHTTPServer,SocketServer, cgi
from os import curdir,sep, path
uploadhtml=‘‘‘<html><body>
<p>批量文件上传</p>
<form enctype="multipart/form-data" action="/" method="post">
<p>File: <input type="file" name="file1"></p>
<p>File: <input type="file" name="file2"></p>
<p>File: <input type="file" name="file3"></p>
<p>File: <input type="file" name="file4"></p>
<p>File: <input type="file" name="file5"></p>
<p><input type="submit" value="上传"></p>
</form>
</body></html>‘‘‘
class WebHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path==‘/‘:
            self.send_response(200)
            self.send_header(‘Content-Type‘,‘text/html; charset=utf-8‘)
            self.end_headers()
            self.wfile.write(uploadhtml)
            return
        try:
            f = open(curdir+sep+self.path)
            self.send_response(200)
            self.end_headers()
            self.wfile.write(f.read())
            f.close()
        except IOError:
            self.send_error(404,‘File Not Found: %s‘ % self.path)
    def do_POST(self):
        form = cgi.FieldStorage(fp=self.rfile,headers=self.headers,environ={‘REQUEST_METHOD‘:‘POST‘,‘CONTENT_TYPE‘:self.headers[‘Content-Type‘],})
        self.send_response(200)
        self.send_header(‘Content-Type‘,‘text/html; charset=utf-8‘)
        self.end_headers()
        self.wfile.write(‘<Html>上传完毕。<br/><br/>‘);
        self.wfile.write(‘客户端: %s<br/>‘ % str(self.client_address))
        for field in form.keys():
            field_item = form[field]
            if field_item.filename:
                fn=curdir+sep+field_item.filename
                print ‘将会上传到目录:‘,fn
                if path.exists(fn):
                    self.wfile.write(‘文件 <a href="%s">%s</a> 已经存在,忽略上传。<br/>‘ % (field_item.filename,field_item.filename))
                else:
                    upfile=open(fn,‘w‘)
                    file_data=field_item.file.read()
                    upfile.write(file_data);
                    upfile.close()
                    file_len = len(file_data)
                    del file_data
                    self.wfile.write(‘文件 <a href="%s">%s</a> 成功上传,尺寸为:%d bytes<br/>‘ % (field_item.filename,field_item.filename,file_len))
        self.wfile.write(‘</html>‘)
class ThreadingHTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): pass
if __name__ == ‘__main__‘:
    server_address = (‘0.0.0.0‘, 8080)
    httpd = ThreadingHTTPServer(server_address, WebHandler)
    print "Web Server On %s:%d" % server_address
    httpd.serve_forever()
时间: 2024-08-01 12:47:39

python server的相关文章

为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。

为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. - 在水一方 - 博客频道 - CSDN.NET 为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. 分类: 技术空间 2008-06-12 10:43 301人阅读 评论(0) 收藏 举报 pythonoracleserverwebapache数据库 目录(?)[+] Python 和 Python server Pages 的背景 解决方案组件 oracle 数

python server.py下载dns上文件

1.对需要运行server.py脚本的服务器进行配置 2.在服务器上,执行python server.py -f fielname 3.在客户端上,运行sh client.sh dns.testdomain.com 4.这时你应该看到client和server开始产生base64的调试输出.client会把base64的编码写到本地文件中,同时在结束传输时解码 server.py下载地址 https://github.com/breenmachine/dnsftp client.sh脚本 #!b

python server搭建==

1.代码: from http.server import HTTPServer, BaseHTTPRequestHandler class Handler(BaseHTTPRequestHandler): """docstring fos Handler""" def do_sth_for_GET(self): self.send_response(200) self.send_header('Content_type','text/plain

Python学习笔记20:server先进

我们不依赖于一个框架,CGI如果是,只能使用socket介面.他完成了一个可以处理HTTP要求Pythonserver. 基于,不管是什么的计算机的操作系统(推荐Linux)和Python该计算机可被用作HTTPserver采用.要设置你的网站. 改写上一篇文章中的程序.并引入更高级的Python包,以写出更成熟的Pythonserver. 一 支持POST 我们首先改写原文中的HTTPserver,从而让该server支持更加丰富的HTTP请求. 相对于原程序,这里增添了表格以及相应"POST

使用Python的http.server实现一个简易的Web Api对外提供HanLP拼音转换服务

由于采集省市区镇数据需要对地名进行拼音转换,由于第三方高准确度接口对IP进行了限制,处理大量数据变得异常缓慢. 使用了一个折中的办法,省市区 3级(3千+)用高准确度接口(几乎没有拼错的地名),镇级(4万+)用本地HanLP提供的接口(大部分多音字还算是能拼正确). Github源码:https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov/tree/master/.pinyin-python-server 另外我提供了一个临时测试服务器,

HOWTO Use Python in the web — Python v3.0.1 documentation

HOWTO Use Python in the web - Python v3.0.1 documentation mod_python? People coming from PHP often find it hard to grasp how to use Python in the web. Their first thought is mostly mod_python because they think that this is the equivalent to mod_php.

【转载】python实例手册

今天西爬虫的时候遇到了问题,在网上不停地查找资料,居然碰到两篇好文章: 1.python实例手册   作者:没头脑的土豆 另一篇在这:shell实例手册 python实例手册 #encoding:utf8 # 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请使用"notepad++"打开此文档,"alt+0"将函数折叠后方便查阅 请勿删除信息,转载请说明出处,抵制不道德

Python 网络编程

Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. socket()函数 Pyt

python网络编程——简单例子

客户端(client.py) import socket import sys port = 70 host = sys.argv[1] filename = sys.argv[2] s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, port)) fd = s.makefile("rw", 0) fd.write(filename + "\n") for line in fd