python 编写简单网页服务器的实例


Posted in Python onJune 01, 2018

IDE:Pycharm

sever.py

#!/bin/python
#-*- coding: UTF-8 -*-
#文件名:server.py
#create by wzh 2017/10/26
import socket #导入socket模块
import re
from multiprocessing import Process #导入进程模块
#设置静态文件根目录
HTML_ROOT_DIR='./html'
def handle_client(client_socket):
 """处理客户端连接请求"""
 request_data=client_socket.recv(1024)
 print(request_data)
 request_lines=request_data.splitlines()
 for line in request_lines:
  print(line)
 #'GET / HTTP/1.1'
 request_start_line=request_lines[0].decode("utf-8")
 print("*"*10)
 print(request_start_line)
 #提取用户请求的文件名
 file_name=re.match(r"\w+ +(/[^ ]*) ",str(request_start_line)).group(1)
 if "/" == file_name:
  file_name='/index.html'
 #打开文件,读取内容
 try:
  file=open(HTML_ROOT_DIR+file_name,"rb")
 except IOError:
  response_start_line="HTTP/1.1 404 Not Found\r\n"
  response_heads="Server: My server\r\n"
  response_body="The file not found!"
 else:
  file_data=file.read()
  file.close()
  response_start_line="HTTP/1.1 200 ok\r\n"
  response_heads="Server: My server\r\n"
  response_body=file_data.decode("utf-8")
 response=response_start_line+response_heads+"\r\n"+response_body
 print("response data:",response)
 client_socket.send(bytes(response,"utf-8"))
 client_socket.close()
if __name__=="__main__":   #如果直接运行本文件,那么__name__为__main__(此时才运行下面的程序),否则为对应包名
 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 创建socket对象
 s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
 #host = socket.gethostname() # 获取本地主机名
 port = 1212 #
 #print(host)
 s.bind(("", port)) # 绑定端口
 s.listen(5)
 while True:
  c,addr=s.accept() #建立客户端连接
  print('连接地址',addr)
  handle_client_process=Process(target=handle_client,args=(c,)) #ALT+ENTER快捷键生成函数
  handle_client_process.start()
  c.close()

index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>My Web</title>
</head>
<h1 align="center">welcome!</h1>
<p align="center">这是一个神奇的网站!</p>
<body>
</body>
</html>

运行server.py

在浏览器中输入localhost:1212

以上这篇python 编写简单网页服务器的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python根据出生日期获得年龄的方法
Mar 31 Python
python下载文件时显示下载进度的方法
Apr 02 Python
Python3使用requests发闪存的方法
May 11 Python
Python闭包函数定义与用法分析
Jul 20 Python
Python实现的列表排序、反转操作示例
Mar 13 Python
python多维数组分位数的求取方式
Mar 03 Python
浅谈Python中的继承
Jun 19 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
Jul 28 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
Python unittest discover批量执行代码实例
Sep 08 Python
python实现发送带附件的邮件代码分享
Sep 22 Python
Python接口自动化测试框架运行原理及流程
Nov 30 Python
Django中间件实现拦截器的方法
Jun 01 #Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 #Python
详解Python如何生成词云的方法
Jun 01 #Python
Python实现的个人所得税计算器示例
Jun 01 #Python
Python模拟登录的多种方法(四种)
Jun 01 #Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 #Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 #Python
You might like
php中的时间处理
2006/10/09 PHP
跟我学Laravel之视图 &amp; Response
2014/10/15 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
Laravel重写用户登录简单示例
2016/10/08 PHP
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
在Python中使用异步Socket编程性能测试
2014/06/25 Python
python实现合并两个数组的方法
2015/05/16 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
Python简单实现区域生长方式
2020/01/16 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
大学生职业生涯规划书
2014/03/14 职场文书
汽车广告策划方案
2014/05/31 职场文书
校园安全广播稿范文
2014/09/25 职场文书
辩护词范文大全
2015/05/21 职场文书
公司出差管理制度范本
2015/08/05 职场文书