2015-06-20 39 views
2

我是网络应用程序开发的新手。它显示的 'Hello World' 在浏览器中pyhton文件Web应用程序中的处理程序

import webapp2 

class MainHandler(webapp2.RequestHandler): 
    def get(self): 
     self.response.write('Hello World') 

app = webapp2.WSGIApplication([('/', MainHandler) 
], debug=True) 

什么我不明白是该行

应用= webapp2.WSGIApplication的功能([( '/', MainHandler) ],debug = True)

我已经搜索了网络的答案,但未能得到满意的答案。如果有人能解释它,考虑到我是初学者,这将是非常棒的。

回答

0

据我所知webapp2.WSGIApplication在默认端口上创建一个新的监听器。当您键入127.0.0.1/时,浏览器会向您的应用程序发送一个请求,以侦听默认端口(我认为它是80)。 webapp2.WSGIApplication监听器将为此请求(以及它接收到的每个请求)创建一个新实例MainHandler然后WSGIApplication将触发get重写的方法MainHandler以生成输出。在一天结束时,WSGIApplication将返回输出文本。

0

通过这行你your're创建您的wsgi web应用程序。

app = webapp2.WSGIApplication([('/', MainHandler) ], debug=True) 

所以让我们把它分成小部分。

如果你对任何语言的网络编程都很熟悉(并且概念上),你应该知道你的服务器应该知道他要服务哪个url。在你的情况下,你已经注册了“/”(root)url,这与http://127.0.0.1/相同。而且你还定义了对“/”url的响应将提供MainHandler类。

('/', MainHandler) 

因此,当请求将达到你的WSGI服务器时,它会被重定向到您MainHandler的得到方法。一般你的得到处理程序应该做出正确的http响应。由于您的MainHandler类继承自webapp2.RequestHandler类,因此它已经有一些工具作出响应,因此您不会在意http标头等。通过下面一行你正在形成响应,这在你的情况下只是一个简单的字符串“Hello World”。

self.response.write('Hello World') 

后您的得到函数调用的WSGI服务器将发送回已经形成这样的HTTP响应浏览器:

HTTP/1.1 200 OK 
Content-Type: text/plain 
Content-Length: length 

Hello World. 

您还可以检查this tutorial对webapp2的框架,进一步的细节。

祝你好运。

相关问题