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
猜你喜欢
- 一、 什么是进程 / 线程1、 引论众所周知,CPU是计算机的核心,它承担了所有的计算任务。而操作系统是计算机的管理者,是一个大管家,它负责
- 一个方便的特性是你可以给一个视图指定默认的参数。 这样,当没有给这个参数赋值的时候将会使用默认的值。例子:# urls.pyfrom dja
- 首先说说框架(Frameworks)这个词,框架就是为我们提供了一个平台一个运行环境,在如此统一的前提下我们做相关开发才能“有章可循”,要充
- 语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是Java的垃圾回收,都成为语言最重要的特征。
- 本文通过Python3+pyqt5实现了python Qt GUI 快速编程的16章的excise例子。#!/usr/bin/env pyt
- 一、数据降维机器学习中的维度就是特征的数量,降维即减少特征数量。降维方式有:特征选择、主成分分析。1.特征选择当出现以下情况时,可选择该方式
- 本文实例讲述了Python统计文件中去重后uuid个数的方法。分享给大家供大家参考。具体如下:利用正则表达式按行获取日志文件中的的uuid,
- 好了,下面我们看看如何在服务器上生成.m3u文件并下传到客户端的:<%dim choose,path,mydb,myset,
- python程序结构python“一切皆对象”,这是接触python听到最多的总结了。在python中最基层的单位应该就是对象了,对象需要靠
- 凯撒加密就是通过将字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移,被替换成密文。例如
- 实例如下所示:import matplotlib.pyplot as pltplt.imshow(img)#控制台打印出图像对象的信息,而图
- 数组排序排序是指将元素按有序顺序排列。有序序列是拥有与元素相对应的顺序的任何序列,例如数字或字母、升序或降序。NumPy ndarray 对
- 阅读上一篇:WEB前端开发经验总结 ⅠWEB标准篇现在我们接着来讲怎么在实际开发中结合我前面所讲的理论来开发制作页面吧。现在就来看看我们要制
- 前言地图定位这个功能大家都很熟悉吧,那微信小程序中要怎么实现地图定位呢,其实非常简单,没有大家想象中那么难,看完本篇文章,你也可以轻松实现这
- 一、背景描述csv格式文件是一种类似于excel的文件格式asc格式文件是一种可以用text打开的文本文件csv转asc本来可以用arcgi
- 如下所示:import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9]])b = np.a
- 一、循环语句介绍 1.循环语句理解循环语句允许我们执行一个语句或语句组多次,可以让我们的代码重复的去执行。2.循环语句示意图二、循
- rs.open sql,conn:如果sql是delete,update,insert则会返
- 找了半天,以为numpy的where函数像matlab 的find函数一样好用,能够返回一个区间内的元素索引位置。结果没有。。(也可能是我没
- 似乎讨论分页的人很少,难道大家都沉迷于limit m,n?在有索引的情况下,limit m,n速度足够,可是在复杂条件搜索时,where s