码迷,mamicode.com
首页 > 编程语言 > 详细

编写python web框架(一):简介

时间:2017-09-29 17:58:49      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:自带   span   sel   cal   eve   实现   tar   ram   port   

编写一个最简单的应用:

def app(environ, start_response):
    start_response(200 OK, [(Content-Type, text/html)])
    return [b<h1>Hello, web!</h1>]

使用python标准库里自带的WSGI服务器:

httpd = make_server(‘‘, 5000, application)
print(Serving HTTP on port 5000...)
httpd.serve_forever(

即可运行。

这里我们实现了一个函数,而这个工作其实也可以用类来完成,而且使用起来更方便:

class MyFrame:
    def __init__(self):
        pass

    def run(self):
        pass

    def wsgi_app(self):
        pass

    def __call__(self):
        pass

WSGI标准要求用类来实现时必须有一个__call__方法。再加点枝叶进去:

from wsgiref.simple_server import make_server

class MyFram:
    
    def __init__(self):
        pass

    def run(self):
        httpd = make_server(‘‘, 5000, self)
        print(Serving HTTP on port 5000...)
        httpd.serve_forever()

    def wsgi_app(self, environ, start_response):
        start_response(200 OK, [(Content-Type, text/html)])
        return [b<h1>Hello, web!</h1>]

    def __call__(self, environ, start_response):
        return self.wsgi_app(environ=environ, start_response=start_response)

这样一来,一个最简单的框架就写好了。具体使用方法如下:

app = MyFrame()

if __name__ == __main__:
    app.run()

打开浏览器,输入127.0.0.1:5000,即可看到期待的 Hello, web! 。

之所以用run方法将server_forever包装起来,主要是受到flask的启发。这种形式比较美观,而且也容易理解。

编写python web框架(一):简介

标签:自带   span   sel   cal   eve   实现   tar   ram   port   

原文地址:http://www.cnblogs.com/tdkihrr/p/7611804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!