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实现文件分组复制到不同目录的例子
Jun 04 Python
举例讲解Python中的list列表数据结构用法
Mar 12 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
python print出共轭复数的方法详解
Jun 25 Python
python flask搭建web应用教程
Nov 19 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
Python基于unittest实现测试用例执行
Nov 25 Python
java关于string最常出现的面试题整理
Jan 18 Python
python 通过使用Yolact训练数据集
Apr 06 Python
聊聊Python中关于a=[[]]*3的反思
Jun 02 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程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
ReactJs设置css样式的方法
2017/06/08 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
python局部赋值的规则
2013/03/07 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
python实现linux下抓包并存库功能
2018/07/18 Python
Python中的self用法详解
2019/08/06 Python
在vscode中配置python环境过程解析
2019/09/28 Python
python利用dlib获取人脸的68个landmark
2019/11/27 Python
python的数学算法函数及公式用法
2020/11/18 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
旅游管理实习自我鉴定
2013/09/29 职场文书
单位办理社保介绍信
2014/01/10 职场文书
绩效考核实施方案
2014/03/18 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
委托书范本
2014/09/13 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫
详解pytorch创建tensor函数
2022/03/22 Python