Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
应用程序引擎Python如何处理URL?_Python_Google App Engine - Fatal编程技术网

应用程序引擎Python如何处理URL?

应用程序引擎Python如何处理URL?,python,google-app-engine,Python,Google App Engine,我只想问一个简单的问题,因为我不知道怎么做 在app.yaml中,当我想要声明查询字符串参数时,我该如何做 例如,要创建一个多语言网站,我将使用以下格式创建url: mysite.com/english/aboutus mysite.com/italiano/aboutus 在app.yaml中,处理它们的脚本是 - url: /english/aboutus script: index.py - url: /italiano/aboutus script: index.py 我

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

在app.yaml中,当我想要声明查询字符串参数时,我该如何做

例如,要创建一个多语言网站,我将使用以下格式创建url:

mysite.com/english/aboutus

mysite.com/italiano/aboutus
在app.yaml中,处理它们的脚本是

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

- url: /italiano/aboutus
  script: index.py
我可以通过哪种方式确定这两个URL之间的差异,以及如何在index.py中处理它们


我知道这是一个简单的问题,我可以四处寻找参考资料,但它也可能对stackoverflow.com中的其他人有所帮助。

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

例如,在index.py中

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

更多信息可以在这里找到

SCRIPT\u NAMEenviron条目包含调用脚本的路径。还没有在GAE中专门测试过这一点,但它是WSGI继承的


我记得我做过这样的事情:

应用程序内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是斜杠之间的单词,支持39种人类语言。最好的方法是通过lib/django/django/conf/locale/ 通过参数hl=[languageCode]翻译所有引擎消息的应用程序
[一次性代码]

嗨,Ryan,其他页面怎么样?我似乎不太清楚你的解决办法。例如,我有两种语言的产品页面、服务页面、联系人页面?您好,如果有许多URL,您的解决方案似乎很复杂。我在某个地方读到,我们可以使用正则表达式,但我还没有计划好如何使用它:-s?你到底想干什么?添加更多页面根本不会改变代码,我不知道你为什么认为你可能需要一个正则表达式?嗨,bobince,在这种情况下,你必须用一些开关/案例手动处理脚本名称,等等。。。例如,可能出现空引用,您还必须进行检查。通过使用正则表达式,我认为更容易;)如果我错了,请纠正我:)现在我迷路了!Python没有任何
开关
/
大小写
构造,
SCRIPT\u NAME
不能是
None
,您可以通过简单的字符串匹配选择要显示的页面(不需要正则表达式)。也许您最好使用现有的web框架,并支持将请求发送到不同的处理程序?嗨,bobince,很抱歉,在评论上一个之前,我没有测试您的代码:-d您的代码运行良好,只是“SCRIPT\u NAME”改为“PATH\u INFO”,environ是os.environ language=os.environ['PATH\u INFO'][1:]拆分(“/”,1)[0]谢谢!
class MainHandler(webapp.RequestHandler):
     def get(self, Urlpart1, Urlpart2):

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