框架即FrameWork,旨在更快的解决共性问题。

对于所有的web应用,本质就是一个socke服务端和socke浏览器客户端

自己封装的一个简单web框架

import socketdef handle_request(conn):buf = conn.recv(1024)conn.send("HTTP/1.1 200 OK\r\n\r\n".encode("utf8"))conn.send("<h1 style='color:red'>Hello World</h1>".encode("utf8"))def main():sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)sock.bind(('localhost',8001))sock.listen(5)while True:connection,address = sock.accept()handle_request(connection)connection.close()if __name__ == "__main__":main()

我们监听一个8001端口,当浏览器访问该端口,我们返回一个h标签给客户端。这就实现了一个简单的请求响应,但是具体的解析http请求,发送http响应,这都需要专业的http技能,

所以,需要一个统一的接口,这个接口就是WSGI:Web Server Gateway Interface。

python wsgi接口web框架

#框架示例demo 显示当前时间  示例web框架的解析
from wsgiref.simple_server import make_server
import timedef current_time(request):cur_time=time.ctime(time.time())f=open("current_time.html","rb")data=f.read()data=str(data,"utf8").replace("!cur_time!",str(cur_time))return [data.encode("utf8")]def routes():urlpatterns=(('/current_time',current_time),)return urlpatternsdef application(environ,start_response):start_response("200 OK",[('Content-Type','text/html')])path=environ["PATH_INFO"]urlpatterns=routes()func=Nonefor item in urlpatterns:if item[0] == path:func=item[1]break;if func:return func(environ)else:return ["<h1>404</h1>".encode("utf8")]return [b'<h1>Hello,World</h1>']httpd = make_server('',8080,application)
print("serving http on port 8080...")
httpd.serve_forever()

转载于:https://www.cnblogs.com/FashionDoo/p/10649719.html

Python 框架篇相关推荐

  1. Python框架篇之Django(基本流程、命令行、配置文件)

    文章目录 一.总述 二.Django的实现流程 三.django的命令行 四.配置文件(settings) 1.MEDIA_ROOT和MEDIA_URL 2.STATIC_ROOT和STATIC_UR ...

  2. Python框架篇之Django(Django项目搭建全过程、Web框架与Django)

    文章目录 一.Web框架与Django本质 二.从安装到实现一个完整的Django项目 一.Web框架与Django本质 1.Web框架的理解 框架,特指为解决一个开放性问题而设计的具有一定约束性的支 ...

  3. Python框架篇:结构化的网页抓取框架-Scrapy

    前言 大家好,我是一身正气的辣条哥 今天主要跟大家分享一下Scrapy,Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的 ...

  4. Python框架篇之Django(路由系统URL、视图函数views)

    文章目录 一.路由系统(URL) 二.视图函数(views) 一.路由系统(URL) 1.URL配置 (URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用 ...

  5. Python框架篇之Django(Models的多表操作)

    一对多 1.添加记录 #publish_id=2Book.objects.create(name="Python进阶",price=77,pub_date="2019-1 ...

  6. Python框架篇之Django(ORM对象关系映射)

    文章目录 一.认识ORM 二.模型常用字段类型 三.数据表的增删改查 四.配置日志 一.认识ORM 1.概念:简单来说,就是用面向对象的方式去操作数据库的创建表以及增删改查等操作. 2.ORM的优点 ...

  7. Python框架篇之Django(Models数据表的创建、数据库配置)

    文章目录 一.数据库的配置 二.Models数据表的创建 三.在Pycharm中显示 一.数据库的配置 1. django默认支持 sqlite,mysql, oracle,postgresql数据库 ...

  8. Python框架篇之Django(Template模版:标签tag、自定义filter、extend模板继承)

    文章目录 一.标签的使用(tag) 二.自定义filter和simple_tag 三.extend模板继承 一.标签的使用(tag) 1.语法格式:{% tags %} 2.提供的几种标签 {% if ...

  9. Python框架篇之Django(Template基础:模板语法、过滤器filter)

    文章目录 一.Template介绍 二.模板语法 三.过滤器(filter) 一.Template介绍 Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给 ...

最新文章

  1. CoolPad backdoor CoolReaper
  2. EXCEL导入导出使用的框架
  3. 出现Too many connections错误,怎样解决?
  4. 图像连通域检测的2路算法Code
  5. orm提取指定列_使用ORM提取数据很容易! 是吗?
  6. java 使用c .dll_Windows下java调用c的dll动态库--Dev_Cpp编译c生成dll
  7. 蓝桥杯第八届省赛JAVA真题----包子凑数
  8. python执行批处理文件_如何从Python中执行批处理文件,从而改变调用进程的环境?...
  9. RocketMQ源码解析-Producer消息发送
  10. 游侠原创:手机电子商务与社交隐私--网络安全的下一个关注点
  11. 出错提示:“Could not flush the DNS Resolver Cache: 执行期间,函数出了问题”的解决方法...
  12. html5新的dom函数,从0到1: 实现一个虚拟 DOM(上)
  13. python的设计哲学_Python的设计哲学
  14. nodeAPI--TCP
  15. 软件程序设计中的N-S图、PAD图、程序流程图、E-R图
  16. 腾讯视频怎么获得html代码,如何获取腾讯视频等九大视频网站的视频分享代码...
  17. 开优步认识各色各样的人,人生需要这样的新鲜体验!
  18. 2. C语言 -- 打印
  19. 基本数据类型有哪些?
  20. 微型计算机显卡必须插在主板的,花小钱办大事 不同型号N卡组建SLI系统

热门文章

  1. filter过滤器_不了解布隆过滤器?一文给你整的明明白白!
  2. Navicate Premium不能用localhost和127.0.0.1登陆sql-server,解决方法
  3. 计算机应用基础(本)实训任务1,计算机应用基础(本)实训任务1-2.pdf
  4. jsp mysql驱动程序_JSP通过JDBC驱动MySQL数据库方法
  5. java 继承 模型_java – 画布形状模型的继承与组合?
  6. Python的操作符重载
  7. 【图像分割模型】以RNN形式做CRF后处理—CRFasRNN
  8. 全球及中国烯丙基硫脲行业十四五需求产量及投资规模预测报告2022版
  9. 全球及中国润滑油市场产销规模及营销竞争分析报告2021-2027年
  10. 中国一次性塑料餐具市场运营动态及供需态势分析报告2022年版