python实现一个web服务器
一,使用python开启一个web服务器
自带的simple_server模块开启一个服务器;
from wsgiref.simple_server import make_server
#导入simple_server模块#定义一个application,遵循wsgi协议;
def app(env, start_response): #服务器接收到的客户端请求都会存储在env中,再传入到app进行处理,处理后再返回start_response("200 ok",[("Content-Type","text/plain")])return [b'hello'] #swgi协议规定必须返回bety#实例化一个服务器设置ip为本机,端口为5000,执行程序为上面的app
server = make_server("", 5000, app)
#开启一个服务器,默认0.5秒轮询,接收客户端请求
server.serve_forever()
开启后在浏览器输入localhost:5000即可访问,如下:
二,将我们的app逻辑优化一下
app能够处理多个url以及异常处理如下:
#视图函数
def home(*args):return "home"
def login(*args):return "login"
def project(*args):return "project"patterns = {"/":home,"/login":login,"/project":project} #路由关系的字典def app(env, start_response):url = env.get("PATH_INFO") #从环境变量获取web端传来的urlparams = env.get("QUERY_STRING") #从环境变量获取web端传入的参数if (url is None) or (url not in patterns.keys()):start_response("404 not found", [("Content-Type", "text/plain")])return [b"page not found"]start_response("200 ok",[("Content-Type", "text/plain")])resp = patterns.get(url)if resp is None: #key在路由关系里,但是velue为none的情况处理start_response("404 not found", [("Content-Type", "text/plain")])return [b"page not found"]return [resp(params).encode()] #执行视图函数server = make_server("", 5000, app)
server.serve_forever()
访问url=“/”
访问url=“/login”
访问不存在的url
这是用的python低层模块实现的web服务器,像成熟的框架flask以及django也都是在这个基础上封装的,希望能帮到你~
python实现一个web服务器相关推荐
- 服务器关闭重启后客户端socket能自动连接吗_用Python 撸一个 Web 服务器
从一个 Hello World 程序说起 要编写 Web 服务器,需要用到一个 Python 内置库 socket.Socket 是一个比较抽象的概念,中文叫套接字,它代表一个网络连接.两台计算机之间 ...
- cdt规约报文用程序解析_用 Python 撸一个 Web 服务器第3章:使用 MVC 构建程序
Todo List 程序介绍 我们将要编写的 Todo List 程序包含四个页面,分别是注册页面.登录页面.首页.编辑页面.以下分别为四个页面的截图. 注册页面: 登录页面: 首页: 编辑页面: 程 ...
- 用 Python 撸一个 Web 服务器-第1章:Web 开发简介
前言 Web 开发技术一直在高速发展,各种新奇概念与框架层出不穷,尤其在 Web 前端领域,几年前还是 jQuery 的天下,而如今在 Vue.React 等框架面前也显得廉颇老矣. 不过,虽然各种框 ...
- python实现矢量分级渲染_用 Python 撸一个 Web 服务器-第4章:动态渲染数据
上一章中为了尽快让 Todo List 程序跑起来,并没有完全按照 MVC 模式编写程序.这一章就让我们一起实现一个完整的 MVC 模式 Todo List 程序首页. 使用模型操作数据 我们来分析下 ...
- 一个div 上下两行_用 Python 撸一个 Web 服务器第4章:动态渲染数据
上一章中为了尽快让 Todo List 程序跑起来,并没有完全按照 MVC 模式编写程序.这一章就让我们一起实现一个完整的 MVC 模式 Todo List 程序首页. 使用模型操作数据 我们来分析下 ...
- 通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本.图片.视频等文件 文章目录: 1 在服务器端开启一个服务 2 在本地浏览器中输入服务器的ip地址 1 在服务器端开启一个服务 python -m ...
- asp.net web开发框架_用Python开发一个Web框架
一.Web框架 首先我们今天要做的事是开发一个Web框架.可能听到这你就会想.是不是很难啊?这东西自己能写出来? 如果你有这种疑惑的话,那就继续看下去吧.相信看完今天的内容你也能写出一个自己的Web框 ...
- 自己写一个Web服务器(1)
自己写一个Web服务器(1) 2016-04-13 分类:操作系统.编程开发.首页精华1人评论 分享到:更多15 本文由码农网 – 王坚原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿 ...
- 【LINUX】——linux如何使用Python创建一个web服务
问:linux如何使用Python创建一个web服务? 答:一句话,Python! 一句代码: /usr/local/bin/python -m SimpleHTTPServer 8686 > ...
最新文章
- Thrift之Protocol源码分析
- C语言rewind()函数(设置文件位置为给定流 stream 的文件的开头)(回到文件开头重读)
- 分布式系统原理 之2 基本副本协议
- 传统公司部署OpenStack(t版)简易介绍(七)——cinder模块部署
- php-ast 开源,PHP AST学习 - osc_ryjlu6z2的个人空间 - OSCHINA - 中文开源技术交流社区...
- 几件欣慰的事,关于.Net的培训和嵌入式开发效率
- 有传闻说,写好总结可以升职加薪?
- 【老生谈算法】matlab实现图像复原算法源码——图像复原
- 使用JavaScript创建模块化的双人对战象棋程序
- ASO优化选词:三种方法教你精准定位关键词
- windows常见电脑蓝屏的解决办法
- POJ 3422 Kaka's Matrix Travels(拆点+最大费用流)题解
- 【语义分割】2021-PVT2 CVMJ
- 阿里云服务器租赁注意点
- 空气净化器哪个品牌口碑好 空气净化器除甲醛排行榜前十名
- Python 李查逊/Richardson加速外推法
- 河南省第二类医疗器械首次注册
- tp5学习记录:导入前端静态模板
- manjaro 安装的艰辛历程,常用软件安装以及踩坑
- php数据库中有痣但是有时取不到,怎么判断脸上的痣会不会癌变?有这些情况就要警惕是皮肤癌...