一,使用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服务器相关推荐

  1. 服务器关闭重启后客户端socket能自动连接吗_用Python 撸一个 Web 服务器

    从一个 Hello World 程序说起 要编写 Web 服务器,需要用到一个 Python 内置库 socket.Socket 是一个比较抽象的概念,中文叫套接字,它代表一个网络连接.两台计算机之间 ...

  2. cdt规约报文用程序解析_用 Python 撸一个 Web 服务器第3章:使用 MVC 构建程序

    Todo List 程序介绍 我们将要编写的 Todo List 程序包含四个页面,分别是注册页面.登录页面.首页.编辑页面.以下分别为四个页面的截图. 注册页面: 登录页面: 首页: 编辑页面: 程 ...

  3. 用 Python 撸一个 Web 服务器-第1章:Web 开发简介

    前言 Web 开发技术一直在高速发展,各种新奇概念与框架层出不穷,尤其在 Web 前端领域,几年前还是 jQuery 的天下,而如今在 Vue.React 等框架面前也显得廉颇老矣. 不过,虽然各种框 ...

  4. python实现矢量分级渲染_用 Python 撸一个 Web 服务器-第4章:动态渲染数据

    上一章中为了尽快让 Todo List 程序跑起来,并没有完全按照 MVC 模式编写程序.这一章就让我们一起实现一个完整的 MVC 模式 Todo List 程序首页. 使用模型操作数据 我们来分析下 ...

  5. 一个div 上下两行_用 Python 撸一个 Web 服务器第4章:动态渲染数据

    上一章中为了尽快让 Todo List 程序跑起来,并没有完全按照 MVC 模式编写程序.这一章就让我们一起实现一个完整的 MVC 模式 Todo List 程序首页. 使用模型操作数据 我们来分析下 ...

  6. 通过python建立一个web服务查看服务器上的文本、图片、视频等文件

    通过python建立一个web服务查看服务器上的文本.图片.视频等文件 文章目录: 1 在服务器端开启一个服务 2 在本地浏览器中输入服务器的ip地址 1 在服务器端开启一个服务 python -m ...

  7. asp.net web开发框架_用Python开发一个Web框架

    一.Web框架 首先我们今天要做的事是开发一个Web框架.可能听到这你就会想.是不是很难啊?这东西自己能写出来? 如果你有这种疑惑的话,那就继续看下去吧.相信看完今天的内容你也能写出一个自己的Web框 ...

  8. 自己写一个Web服务器(1)

    自己写一个Web服务器(1) 2016-04-13    分类:操作系统.编程开发.首页精华1人评论 分享到:更多15 本文由码农网 – 王坚原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿 ...

  9. 【LINUX】——linux如何使用Python创建一个web服务

    问:linux如何使用Python创建一个web服务? 答:一句话,Python! 一句代码: /usr/local/bin/python -m SimpleHTTPServer 8686 > ...

最新文章

  1. Thrift之Protocol源码分析
  2. C语言rewind()函数(设置文件位置为给定流 stream 的文件的开头)(回到文件开头重读)
  3. 分布式系统原理 之2 基本副本协议
  4. 传统公司部署OpenStack(t版)简易介绍(七)——cinder模块部署
  5. php-ast 开源,PHP AST学习 - osc_ryjlu6z2的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. 几件欣慰的事,关于.Net的培训和嵌入式开发效率
  7. 有传闻说,写好总结可以升职加薪?
  8. 【老生谈算法】matlab实现图像复原算法源码——图像复原
  9. 使用JavaScript创建模块化的双人对战象棋程序
  10. ASO优化选词:三种方法教你精准定位关键词
  11. windows常见电脑蓝屏的解决办法
  12. POJ 3422 Kaka's Matrix Travels(拆点+最大费用流)题解
  13. 【语义分割】2021-PVT2 CVMJ
  14. 阿里云服务器租赁注意点
  15. 空气净化器哪个品牌口碑好 空气净化器除甲醛排行榜前十名
  16. Python 李查逊/Richardson加速外推法
  17. 河南省第二类医疗器械首次注册
  18. tp5学习记录:导入前端静态模板
  19. manjaro 安装的艰辛历程,常用软件安装以及踩坑
  20. php数据库中有痣但是有时取不到,怎么判断脸上的痣会不会癌变?有这些情况就要警惕是皮肤癌...

热门文章

  1. 机器学习面试题之逻辑回归(二)
  2. buuctf web1
  3. Web 3.0 有哪些值得关注的项目
  4. 修复鼠标单击变双击的问题
  5. 特斯拉Q4财报:底部反弹70%,为信仰打call
  6. MySQL高手篇:精妙SQL语句介绍
  7. 前端优质网络内容(引用)
  8. 全球游戏收入将随着电影电视改编作品的不断增多而达到惊人水平 | 美通社头条...
  9. Linux 环境下载百度云资源,Firefox插件(百度网盘助手)
  10. Java笔试面试题三(编程算法)