App Engine Python如何处理网址?

时间:2009-09-30 17:11:41

标签: python google-app-engine

我只是想问一个简单的问题,因为我不知道该怎么做。

在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中的其他人有所帮助。

4 个答案:

答案 0 :(得分:4)

我记得做过这样的事情:

在app.yaml put

- 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是斜杠之间的单词

答案 1 :(得分:2)

相反,您可以使用webapp框架来处理URL。

例如,在index.py

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

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

答案 2 :(得分:1)

SCRIPT_NAME environ条目包含调用脚本的路径。没有特别在GAE中对此进行测试,但这是WSGI继承自CGI的东西。

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

答案 3 :(得分:0)

支持39种人类语言。最好的方式似乎遵守通过lib / django / django / conf / locale / Here's通过参数hl = [languageCode]翻译所有引擎消息的应用 [代码一次性] 2