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实现二叉堆
Feb 03 Python
Python随机函数random()使用方法小结
Apr 29 Python
Python实现查看系统启动项功能示例
May 10 Python
使用PM2+nginx部署python项目的方法示例
Nov 07 Python
Python可变和不可变、类的私有属性实例分析
May 31 Python
python频繁写入文件时提速的方法
Jun 26 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
pycharm 激活码及使用方式的详细教程
May 12 Python
详解python安装matplotlib库三种失败情况
Jul 28 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 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传输数据的代码
2007/11/13 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
挑战杯创业计划书的写作指南
2014/01/07 职场文书
给孩子的新年寄语
2014/04/08 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书