2012-09-30 190 views
2

新手在這裏 - 我一直在嘗試使用谷歌應用程序引擎在瓶子中創建「Hello World」。我得到了「hello world」部分來顯示,但即​​使在索引頁上,我也會得到以下輸出:「Hello world!Status:500」
如果我嘗試添加新路線(如'/ page'路線),然後我導航到新的路由,我得到「服務器錯誤:網站在檢索時遇到錯誤...可能是維護或配置不正確。」在導航到配置不當的頁面後,如果我嘗試返回到「/」,我還會收到服務器錯誤。我已經將bottle.py放在我的根目錄中。有人可以幫助我正確配置我的文件嗎?謝謝!谷歌應用程序引擎部署瓶子應用程序的問題

import bottle 
from bottle import route, template, request, error, debug 

@route('/') 
def index(): 
    return "Hello World!" 

@route('/page') 
def page(): 
    return 'page!' 

bottle.debug(True) 
bottle.run(server='gae') 
+1

後的追溯實際錯誤。如果您在本地獲取這些錯誤,請檢查您的sdk輸出,如果已部署,請檢查錯誤日誌。 – aschmid00

+0

我有同樣的問題。當您使用Python 2.7並使用多線程時,則:A)如果處理程序是main.py:加載應用程序配置時發生致命錯誤:無法使用CGI處理程序啓用threadsafe:main.py B)如果處理程序爲main:狀態500,模塊'不可調用C)如果將處理程序設置爲main.app並將bottle.app導入到處理程序的作用域中,那麼:錯誤調用應用程序,args的數目無效 – Stefan

回答

2

這裏有一個瓶子一個很好的教程在GAE上:http://blog.rutwick.com/use-bottle-python-framework-with-google-app-engine

免責聲明:我沒有運行教程,但它看起來是正確的。

main.py:

from framework import bottle 
from framework.bottle import route, template, request, error, debug 
from google.appengine.ext.webapp.util import run_wsgi_app 

@route('/') 
def DisplayForm(): 
    message = 'Hello World' 
    output = template('templates/home', data = message) 
    return output 

def main(): 
    debug(True) 
    run_wsgi_app(bottle.default_app()) 

@error(403) 
def Error403(code): 
    return 'Get your codes right dude, you caused some error!' 

@error(404) 
def Error404(code): 
    return 'Stop cowboy, what are you trying to find?' 

if __name__=="__main__": 
    main() 

的app.yaml:

application: my-bottle-app 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: /styles 
    static_dir: styles 

- url: /.* 
    script: main.py 

正如你看到的有,是一些從你的示例代碼的差異。本教程在解釋它們方面做得很好,所以在這裏我不會詳細討論。

2

這可能幫助:

的app.yaml:

application: my-app 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: yes 

- url: .* 
    script: main.app 

main.py:

import bottle 

@bottle.route('/') 
def root(): 
    return 'hello!' 

bottle.run(server='gae', debug=True) 
app = bottle.app() 

下面是從GitHub原來的答案。 https://github.com/defnull/bottle/issues/401

0

App Engine + Bottle started code使用WSGI一樣,你可以撥打bottle.debug()當代碼開發服務器上運行:

import bottle 
import os 

DEBUG = os.environ.get('SERVER_SOFTWARE','').startswith('Development') 
bottle.debug(DEBUG) 
app = bottle.Bottle() 

而且在app.yaml

handlers: 
- url: .* 
    script: main.app 
相關問題