本节主要通过一个wsgiref模块

实现一个web服务器的功能

服务器可以帮我们解析HTTP的请求,也可以帮我们处理HTTP的一些响应

我们利用这个服务器来完成一个 简单的web框架

wsgiref 代码的基本结构

主要用到的是make_server这个东西

如何使用make_server,可以看一看源代码

通过源码我们明确了这个方法的参数的意义

回顾,我们以前写的mini-web框架

请求来了,我们通过conn.recv拿到了内容

拿到以后,需要自己去解析拿到请求的全部内容

然后从请求的全部内容中取出,请问的路径是哪里,带过来的参数有哪些,等等

那个时候涉及到socket

而这里,有了wsgiref模块

我们见不到socket

因为模块已经帮我们封装好了这些东西了

我们只需要按照方法对应所需的参数传值就可以

在方法的内部,帮我们搞定一切解析

》程序的功能

程序一旦运行,就会卡在15行

直到有连接到来,就会启动application

application,里面做主要的一些功能代码

最终返回结果

注意返回结果的格式 ,列表包字节

》试一试效果

》代码

from wsgiref.simple_server import make_serverdef application(environ, start_response):start_response('200 ok', [('Content-Type', 'text/html')])return ["<h1>hello,web".encode()]httpd = make_server("", 8080, application)print('服务器开始')httpd.serve_forever()

跑一跑试一试

运行起来后,访问

http://127.0.0.1:8080/

当前虽然实现了一个可以访问的实效

然而实际的生产环境并不会通过它来完成

因为他的性能并不是很好,能够支持更大的并发

并发指的就是多个用户同时访问的时候,他一个 处理的功能

》理解一下代码中的实现功能

更详细的说明,见

新目标,根据路径,响应不同内容

当访问的路径是

127.0.0.7:8080/python

的时候,期望返回对应的页面

第一步,我们要取出python,即要取出访问的路径

第二步,根据这个路径,返回对应的内容

在environ中,有一个键可以实现

》练一练,捕捉路径

当路径为python时,输出

hello python

当路径为jquery时,输入

jquery , write less , do more

》答案

。。。

根据不同的内容,响应页面

把页面响应过去

同样是上面的需求,我们返回html文件过去

路由,路径对应函数

后续反复的这样子添加 if 语句,很麻烦

更好的解决办法,把路径与对应的函数之间,做一个关联

定义一个路由函数

在应用中把代码改写成这样

参数-从请求对象中获取

需求

对于登陆函数而言

我们需要得到用户请求时带来的用户名和密码,然后才能够根据这个参数这样怎么过冬?对是的 数据库当中查询它是否存在

怎么解决呢?

思考。。。。。

》解决办法

参数传递

因为web服务器已经把请求所在的全部数据

明确,为什么要把environ传递过去

继续

》尝试从请求对象中,获取参数

可以模拟一个get 请求,带上参数

通过请求对象中的对应键来取值

让页面上显示动态的数据

之前的数据都是静态的

来一个例子

每一次访问,页面上显示时间

思考

我们需要从页面上做文章了

目标是html的内容

如何让html中的内容显示python确定好的数据呢?

分两步来实现

1,首先要生成数据,让页面可以获取

2,我们的目标是从html页面中显示内容

可以在html内容读出来后, 做一做手脚

首先,在静态页面中

然后,找到html代码中的这个占位符号,把它替换为我们的数据就可以了

再一次访问页面,问题就解决了。

》学习django的全部部骤,在上面的例子中已体现出来

  • 控制器,路由分发,router函数
  • 数据库,本例中通过动态的时间来模拟了数据库中的内容
  • 模板渲染,把html中的内容进行替换
  • 视图函数,我们写的一个又一个的功能函数

web-使用wsgiref模块模拟web框架相关推荐

  1. 2、基于wsgiref模块DIY一个web框架

    一 web框架 Web框架(Web framework)是一种开发框架,用来支持动态网站.网络应用和网络服务的开发.这大多数的web框架提供了一套开发和部署网站的方式,也为web行为提供了一套通用的方 ...

  2. python 全栈开发,Day66(web应用,http协议简介,web框架)

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  3. 第十四届蓝桥杯(Web 应用开发)模拟赛 1 期-职业院校组-知识点题解

    这个题解是参考了"海底烧烤店ai"一位非常优秀的全栈领域创作者的博主写的,自己在看的时候发现个人知识点比较欠缺,所以就在题解下面添加了一些知识点,便于理解. 原博主的文章链接如下: ...

  4. Web端与App端自动化测试框架

    Web端与App端自动化测试框架 一.Web端与App端的区别 想了解Web端与App端自动化测试框架的区别 ,那么我们就要先来了解Web和App的区别.Web项目一般都是B/S架构,基于浏览器的,而 ...

  5. web前端自动化测试(基于QT4W框架)

    目录 web前端自动化测试(基于QT4W框架) 一.背景 1.1前端测试种类 二.技术方案 三.核心代码 3.1控件封装 3.2操作控件方法实现 3.3测试用例case 3.4断言方法 web前端自动 ...

  6. web前端学习分享:JavaScript框架

    转自:微点阅读  https://www.weidianyuedu.com web前端培训分享JavaScript框架,JavaScript 是开发领域的重要技术之一.根据 Statista 的报告, ...

  7. 【JavaScript UI库和框架】上海道宁与Webix为您提供用于跨平台Web应用程序开发的JS框架及UI小部件

    Webix是Javascript库 一种软件产品 用于加速Web开发的 JavaScript UI库和框架 Webix用于跨平台Web应用程序开发的JS框架,为您提供102个UI小部件和功能丰富的CS ...

  8. 一个简易实用的web权限管理模块的应用与实现

    本文介绍一个简易实用的web权限管理模块的应用与实现. 先介绍数据模型和应用界面,后继对实现细节做选择性阐述. 数据表关系如下: 该图标明了登陆用户.角色.部门(机构).用户组.角色和模块功能之间的关 ...

  9. 十个最适合 Web 和 APP 开发的 NodeJS 框架 1

    十个最适合 Web 和 APP 开发的 NodeJS 框架 在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之 ...

最新文章

  1. js 获取URL后面的参数
  2. Electron的代码调试
  3. 《区块链原理、设计与应用》一3.3 征信和权属管理
  4. 开源 java CMS - FreeCMS2.6 模型管理
  5. java des zero_android----Java DES加密算法工具类
  6. HBASE+Solr实现详单查询--转
  7. Android回调的简单理解
  8. MVC5+EF6 入门完整教程 总目录
  9. Springboot系列之Shiro、JWT、Redis 进行认证鉴权
  10. java学习之路之播放一首简单的音乐
  11. Windows 系统下安装anaconda教程 ,小白教程!!!
  12. 外贸常用术语_最常用的外贸术语大全,收藏备用
  13. 格子刷油漆c++dp(最详细)
  14. 成都链安xFootprint 2022 Web3 安全研报
  15. 【转】中专生的C++之路!
  16. 新媒体营销方式的优势
  17. 游戏玩家的“梦想”,ROG Phone 6出圈,双USB-C,还有两个屏幕?
  18. matlab中啥叫字符串,在matlab中( )用于括住字符串.
  19. 任意多边形面积的计算
  20. MeiShe Face Sticker Design Plugin AR Scene Editor Instruction

热门文章

  1. CSS3动画 - 地球 - 指南针旋转
  2. python timeout_decorator_使用timeout-decorator为python函数任务设置超时时间
  3. 测试用例编号_怎样编写测试用例更完整,更能提升工作效率?来试试这套方法!...
  4. IIS7批量FTP客户端工具软件
  5. 百度SEO快克工具包 1.5.0 官方版
  6. java注入 named_spring @autowired 如何根据bean(@Service)的name来注入
  7. elementUI Drawer 抽屉 Dialog 对话框 等弹出组件的遮罩层以及多层遮罩解决办法
  8. 电子计算机应由,计算机
  9. 高仿蓝奏云单页下载页面源码
  10. Spring Boot中常见注解诠释