【问题标题】:Detect if URL contains parameters in GAE检测 URL 是否包含 GAE 中的参数
【发布时间】:2013-04-26 03:19:12
【问题描述】:

我想在加载时解析 URL 以查看它是否有任何参数。我只是想建立一个基本测试,看看这是否可能。将http://example.com/?hiyall 之类的网址发送到 ParamHandler 的正确正则表达式是什么?

class ParamHandler(webapp2.RequestHandler):
    def get(self):
        self.response.out.write('parameters detected')


class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.response.out.write('Hello World')



application = webapp2.WSGIApplication ([('/', MainHandler), ('/\?.*', ParamHandler)], debug=True)

【问题讨论】:

  • 你的意思是所有以hiyall结尾的请求(例如phiyall)还是example.com/?hiyall=somevalue之类的get参数。
  • 我的意思是任何涉及“example.com/?”的东西。我想我知道如何解析 url,但现在我需要知道如何在有参数时获取 url。
  • 你能给我一些你想解析的网址的例子吗?你给example.com/?hiyall 的例子是无效的,除非?是一个正则表达式。在这种情况下example.com/shiyall 是有效的。

标签: python regex google-app-engine webapp2


【解决方案1】:

如果您使用的是 webapp2,则无法根据参数路由请求。

但是您可以基于query_string 创建一个条件,该条件可以检查参数是否存在。像下面这样:

class MainHandler(webapp2.RequestHandler):
    def get(self):
        if self.request.query_string:
            self.response.out.write('Has parameters')
        else:
            self.response.out.write('No parameters')



application = webapp2.WSGIApplication ([('/', MainHandler)], debug=True)

【讨论】:

    【解决方案2】:

    get(self)做这样的事情:

    class ParamHandler(webapp2.RequestHandler):
        def get(self):
            hyl = self.request.get("hiyall")
            self.response.out.write("hiyall was: " + hyl)
    

    习惯官方文档链接:https://developers.google.com/appengine/docs/python/tools/webapp/requestclass#Request_get

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      • 2013-08-19
      • 2018-02-05
      • 2014-10-23
      相关资源
      最近更新 更多