2009-09-30 65 views
0

我只想問一個簡單的問題,因爲我不知道該怎麼做。App Engine Python如何處理網址?

在app.yaml中,當我想聲明查詢字符串參數時,我該怎麼做?

例如,做一個多語言的網站,我在此格式創建的網址:

mysite.com/english/aboutus 

mysite.com/italiano/aboutus 

,並在app.yaml中的腳本來處理它們是

- url: /english/aboutus 
    script: index.py 

- url: /italiano/aboutus 
    script: index.py 

在哪種方式我可以確定這兩個網址之間的區別,以及如何在index.py中處理它們?

我知道這是一個簡單的問題,我可以查找引用,但它也可能幫助其他人在stackoverflow.com。

回答

1

environ entry包含腳本被調用的路徑。沒有專門在GAE中測試過這個,但它是從CGI繼承的WSGI。

language= environ['SCRIPT_NAME'][1:].split('/', 1)[0] 
if language not in ('english', 'italiano'): 
    language= 'english' 
+0

嗨,你的解決方案似乎是複雜的,如果有很多網址。 我讀了一些我們可以使用正則表達式的地方,但我並沒有想象如何去做:-s – 2009-09-30 20:27:32

+0

?你到底想做什麼?添加更多頁面並不會改變代碼,我不確定爲什麼你認爲你可能需要一個正則表達式? – bobince 2009-09-30 21:10:56

+0

嗨bobince,在這種情況下,你必須手動處理script_name,例如,它可能會出現空引用,你也必須檢查。通過做一個正則表達式,這是我認爲更容易;)請糾正我,如果我錯了:) – 2009-10-02 10:15:56

2

相反,您可以使用webapp框架來處理URL的。

例如,在index.py

application = webapp.WSGIApplication(
           [('/english', EnglishHandler)], 
           [('/italiano', ItalianHandler)], 
           debug=True) 

更多信息可以在這裏找到。 http://code.google.com/appengine/docs/python/gettingstarted/usingwebapp.html

+0

瑞安嗨,怎麼樣其他頁面呢?我的解決方案似乎不是很清楚。例如,我有兩種語言的產品頁面,服務頁面,聯繫人頁面? – 2009-09-30 20:24:34

4

我記得做這樣的事情:

app.yaml中把

- url: /(.*)/(.*)/? 
    script: main.py 

和main.py

class MainHandler(webapp.RequestHandler): 
    def get(self, Urlpart1, Urlpart2): 

def main(): 
    application = webapp.WSGIApplication([('/(.*)/(.*)/', MainHandler), 
             ('/(.*)/(.*)', MainHandler)], 
             debug=True) 

其中Urlparts是斜槓

之間的話
0

有39胡支持人類語言。最好的辦法似乎是通過LIB/Django的/ Django的/ conf目錄/區域設置符合/ Here's是通過參數HL = [語言代碼] [代碼一次性]將所有的引擎消息的應用2

相關問題