1. 程式人生 > >編寫python web框架(一):簡介

編寫python web框架(一):簡介

== web 方法 nvi ever pytho 必須 ext sim

編寫一個最簡單的應用:

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框架(一):簡介