django wsgiref

This is an category for wsgiref

django 封装模型采用 wsgiref 模块

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from wsgiref.simple_server import make_server


def routers():
    # URLConf 配置
    urlpatterns = (
        ('/book', foo),
        ('/web', bar),
    )
    return urlpatterns


def foo(x):
    return [b'<h1>Hello, book</h1>']


def bar(x):
    return [b'<h1>Hello, web</h1>']


def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])

    urlpatterns = routers()
    path = environ['PATH_INFO']  # http://127.0.0.1:8000/book
    func = None
    for item in urlpatterns:
        if item[0] == path:
            func = item[1]
            break
    if func:
        return func(environ)
    else:
        return ['<h1>404</h1>'.encode('utf-8')]


httpd = make_server('127.0.0.1', 8000, application)

print('Serving HTTP on port 8000...')
httpd.serve_forever()

这里启动了一个server, 做了一个路由分发, 函数处理

comments powered by Disqus
记录自己
Built with Hugo
主题 StackJimmy 设计