gevent.WSGIServer使用



gevent。WSGIServer使用


1。WSGI介绍;


2.多种WSGI服务介绍,实现与测试;


3.通过测试结果说明gevent的优越性。



WSGI


Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。



WSGI server


1.WSGI server所做的工作仅仅是将从客户端收到的请求传递给WSGI application,然后将WSGI application的返回值作为响应传给客户端;


2。WSGI application可以是Flask,Django等web框架。



WSGI app接口介绍


1.WSGI application接口应该实现为一个可调用对象,例如函数、方法、类、含__call__方法的实例。这个可调用对象可以接收2个参数;


2.一个字典,该字典可以包含了客户端请求的信息以及其他信息,可以认为是请求上下文,一般叫做environment(编码中多简写为environ、env);


3.一个用于发送HTTP响应状态(HTTP status )、响应头(HTTP headers)的回调函数;


4.同时,可调用对象的返回值是响应正文(response body),响应正文是可迭代的、并包含了多个字符串。



简易WSGI实现


1.使用python内置WSGI server;


2.编程


# WSGI server in Python
from wsgiref.simple_server import make_server
def application (environ, start_response):
    status = '200 OK'
    response_headers = [
        ('Content-Type', 'text/plain')]
    start_response(status, response_headers)
    return ["welcome to gevent lesson"]
# Instantiate the WSGI server.
# It will receive the request, pass it to the application
# and send the application's response to the client
httpd = make_server(
    'localhost', # The host name.
    8080, # A port number where to wait for the request.
    application # Our application object name, in this case a function.
    )



WSGI性能测试


1.采用工具http_load;


2.安装方式brew install http_load;


3.-parallel简写-p :含义是并发的用户进程数;


4.-fetches简写-f :含义是总计的访问次数;


5.-rate    简写-r :含义是每秒的访问频率;


6。-seconds简写-s :含义是总计的访问时间;


7.-urls 访问的网址名,参数可以是单个的网址也可以使包含网址的文件。



Flask内置WSGI测试和gevent wsgi结合Flask app


简易编程并测试


实例1:


from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello World!'
if __name__ == '__main__':
    app.run()

 

实例2:


from flask import  Flask
import gevent.pywsgi
import gevent
app = Flask(__name__)
@app.route('/')
def handle():
    return 'welcome to gevent lesson!'
gevent_server = gevent.pywsgi.WSGIServer(('', 5000), app)
gevent_server.serve_forever()



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.tttoutiao.net
蜀ICP备13014270号-4 Version 5.0.0 release20160127

免费领取价值1888元求职宝典!

客服热线 400-862-8862

回到顶部

澳洲幸运10开奖结果 澳洲幸运10开奖结果 欢乐生肖 河北11选5走势图 上海时时乐 秒速时时彩 上海时时乐开奖 极速快乐十分 澳洲幸运10开奖结果 秒速时时彩