python web框架的总结

作者:小妮浅浅 时间:2022-01-13 12:22:24 

1、Django

Django可能是最具代表性的Python框架,是遵循MMVC结构模式的开源框架。其名字来自DjangoReinhardt,法国作曲家和吉他演奏家,很多人认为他是历史上最伟大的吉他演奏家。位于堪萨斯州的Lawrence城市的LawrenceJournal-World报社有两名程序员,AdrianHolovaty和SimonWillison,他们在2003年开发了Django,为报纸开发了网络程序。

2、TurboGears

TurboGears是SQLAlchemy、WebOb、Repoze、Genshi等着名Python项目构筑的框架。从某种意义上说,TurboGears是将多个已经建立的开放平台粘在一起。和Django一样,采用MVC结构。最近还包含了最小模式,可以作为微框架。

3、Flask

Flask是一个基于Jinja2和Werkzeug的python微框架,类似于其他框架。是BSD授权的,有少量限制的免费软件许可。使用Flask的网站包括领英LinkedIN和Pinterest。

知识点扩展:

基于socket

自己处理请求


#!/usr/bin/env python3
#coding:utf8
import socket
def handle_request(client):
#接收请求
buf = client.recv(1024)
print(buf)
#返回信息
client.send(bytes('<h1>welcome liuyao webserver</h1>','utf8'))
def main():
#创建sock对象
sock = socket.socket()
#监听80端口
sock.bind(('localhost',8000))
#最大连接数
sock.listen(5)
print('welcome nginx')
#循环
while True:
#等待用户的连接,默认accept阻塞当有请求的时候往下执行
connection,address = sock.accept()
#把连接交给handle_request函数
handle_request(connection)
#关闭连接
connection.close()
if __name__ == '__main__':
main()

基于wsgi

WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以后,许多其它语言中也出现了类似接口。

WSGI 的官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。

WSGI 是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的。

很多框架都自带了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。当然性能都不好,自带的 web server 更多的是测试用途,发布时则使用生产环境的 WSGI server或者是联合 nginx 做 uwsgi 。

python标准库提供的独立WSGI服务器称为wsgiref。


#!/usr/bin/env python
#coding:utf-8
#导入wsgi模块
from wsgiref.simple_server import make_server

def RunServer(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [bytes("welcome webserver".encode('utf8'))]

if __name__ == '__main__':
httpd = make_server('', 8000, RunServer)
print ("Serving HTTP on port 8000...")
httpd.serve_forever()
#接收请求
#预处理请求(封装了很多http请求的东西)

来源:https://www.py.cn/jishu/jichu/28083.html

标签:python,web框架
0
投稿

猜你喜欢

  • Yii2框架整合Xunsearch搜索引擎的方法

    2024-06-05 09:37:48
  • OpenCV制作Mask图像掩码的案例

    2023-09-20 16:34:04
  • 详解Python yaml模块

    2022-08-14 12:15:18
  • 深入分析JavaScript 事件循环(Event Loop)

    2024-04-18 10:51:52
  • 详解go中的引用类型

    2023-08-28 06:02:31
  • python获取交互式ssh shell的方法

    2021-11-25 13:15:21
  • Django结合使用Scrapy爬取数据入库的方法示例

    2022-10-23 01:08:11
  • Vue.js 的过滤器你了解多少

    2024-04-28 09:26:37
  • SQL2005 服务器因重装改名后出错的说明

    2024-01-23 09:31:22
  • golang获取网卡信息操作

    2024-02-22 01:57:17
  • 网页栅格系统研究:960的秘密

    2008-10-24 17:03:00
  • 清理你的CSS

    2009-10-06 15:11:00
  • Python PyQt5实战项目之查询器的实现流程详解

    2023-07-15 04:19:21
  • 如何查看SQLSERVER中某个查询用了多少TempDB空间

    2024-01-16 06:40:21
  • 教你使用Python根据模板批量生成docx文档

    2021-12-27 00:35:13
  • 很棒的js Tab选项卡切换效果

    2024-02-23 14:42:30
  • 怎样保存模型权重和checkpoint

    2023-04-12 00:45:00
  • 交互设计模式(三)-Tagging(标签)

    2009-10-19 20:46:00
  • 在 TypeScript 中使用泛型的方法

    2023-08-23 21:55:00
  • Python利用scapy实现ARP欺骗的方法

    2021-07-24 08:26:03
  • asp之家 网络编程 m.aspxhome.com