2016-04-02 56 views
1

我正在看一个教程,以获得一个基本的Web应用程序说“你好,世界” 但由于某种原因,我不明白,我得到这个 “本地主机页面不工作 本地主机当前无法处理这个请求。”基本的网络应用程序说“你好,世界。”

这就是我所做的。 1.我安装了用于python的Google App Engine SDK。 2.我创建了两个文件是这样的:

main.py

import webapp2 

class MainPage(webapp2.RequestHandler): 
    def get(self): 
     self.response.headers['Content-Type'] = 'text/plain' 
     self.response.write('Hello, World!') 

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

的app.yaml

runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 
- url: /.* 
    script: helloworld.app 

我没有写这些。这些是在谷歌应用程序引擎网站给出的。

我尝试了两种不同的方法来运行它。

  1. 其中两个文件夹中使用终端 :

我用这个命令:dev_appserver.py。 ,这就是我得到:

INFO  2016-04-02 04:28:02,071 sdk_update_checker.py:229] Checking for updates to the SDK. 
INFO  2016-04-02 04:28:02,949 sdk_update_checker.py:257] The SDK is up to date. 
INFO  2016-04-02 04:28:02,982 api_server.py:205] Starting API server at: http://localhost:50345 
INFO  2016-04-02 04:28:02,988 dispatcher.py:197] Starting module "default" running at: http://localhost:8080 
INFO  2016-04-02 04:28:02,989 admin_server.py:116] Starting admin server at: http://localhost:8000 

,当我在Chrome中输入“http://localhost:8000”,我得到这个错误信息: “localhost的页面不工作 本地主机是目前无法处理此请求。 “

,这是错误味精我得到的终端

ERROR 2016-04-02 04:43:47,109 wsgi.py:263] 
Traceback (most recent call last): 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle 
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler 
    handler, path, err = LoadObject(self._handler) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject 
    obj = __import__(path[0]) 
ImportError: No module named helloworld 
INFO  2016-04-02 04:43:47,114 module.py:787] default: "GET/HTTP/1.1" 500 - 
ERROR 2016-04-02 04:43:47,602 wsgi.py:263] 
Traceback (most recent call last): 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle 
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler 
    handler, path, err = LoadObject(self._handler) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject 
    obj = __import__(path[0]) 
ImportError: No module named helloworld 
INFO  2016-04-02 04:43:47,606 module.py:787] default: "GET/HTTP/1.1" 500 - 
  • 使用谷歌应用程序引擎启动 我创建了一个新的应用程序,这给了我我需要的所有文件。 所以我就跑了。 它显示我一个端口号,当我试图在铬上, “http://localhost:8000” 我得到与第一个味精相同的错误。
  • 这是什么,我做错了? 谢谢。

    +0

    你有没有试过http:// localhost:8080? – Ook

    +0

    @Ook是的,我已经尝试过,并没有奏效。 – Nayana

    回答

    1

    您遇到的问题是您已经命名模块main.py,但告诉GAE服务器寻找名为helloworld的模块。该模块不存在,所以该网站无法加载。

    无论您main.py文件重命名为helloworld.py,或更改app.yaml指向main.app而不是helloworld.app

    +0

    非常感谢。这是问题所在。 – Nayana

    +0

    你碰巧知道这个命令:“dev_appserver.py -p 8888”。根据教程,它说“-p”是运行在不同的端口上,但是当我尝试这个时,我得到这个编译错误消息:“dev_appserver.py:错误:无法识别的参数:-p”我该怎么办? – Nayana

    +2

    通过使用Google找到的[documentation page](https://cloud.google.com/appengine/docs/python/tools/devserver)表明使用'--port = 8888'而不是'-p 8888'。也许你的教程已过时? – Blckknght

    -2

    webapp2没有很好的介绍。如果你对web框架还不熟悉,我会建议你从这个开始。

    https://github.com/iogf/untwisted

    它是已建立并实施的一个是微型的web框架,其设计类似于瓶,但要快得多一组插件的事件驱动库。

    +0

    有什么办法可以使它与webapp2一起工作? – Nayana

    +0

    它可能是一个很好的框架,但由于它的设计,它是完全不适合传统的appengine –

    +0

    是的。我认为这是可行的。为什么你认为它不是传统的appengine? –