App Engine Python 如何处理 URL?
我想问一个简单的问题,因为我不知道该怎么做。
在app.yaml文件中,当我想声明查询字符串参数时,我该怎么做呢?
比如说,为了做一个多语言的网站,我会创建这样的URL格式:
mysite.com/english/aboutus
mysite.com/italiano/aboutus
然后在app.yaml中,处理这些URL的脚本是:
- url: /english/aboutus
script: index.py
- url: /italiano/aboutus
script: index.py
我该如何区分这两个URL,并在index.py中处理它们呢?
我知道这是个简单的问题,我可以自己找资料,但这可能对其他在stackoverflow.com上的人也有帮助。
4 个回答
2
你可以使用网络应用框架来处理网址。
比如,在 index.py 文件里:
application = webapp.WSGIApplication(
[('/english', EnglishHandler)],
[('/italiano', ItalianHandler)],
debug=True)
更多信息可以在这里找到。 http://code.google.com/appengine/docs/python/gettingstarted/usingwebapp.html
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 指的是斜杠之间的单词
1
SCRIPT_NAME
这个环境变量包含了你运行脚本时的路径。虽然我没有在Google App Engine(GAE)上专门测试过这个,但这是WSGI从CGI继承来的东西。
language= environ['SCRIPT_NAME'][1:].split('/', 1)[0]
if language not in ('english', 'italiano'):
language= 'english'