【问题标题】:How can I extract City, Region, Country from URL? Django如何从 URL 中提取城市、地区、国家?姜戈
【发布时间】:2016-06-01 21:55:57
【问题描述】:

我的搜索字段返回如下内容:

http://localhost:8000/search/?city=New+York%2C+NY%2C+United+States

如何提取城市、地区、国家。我浏览过这个文档:https://docs.python.org/2/library/urlparse.html

还有这个问题:

How can I extract City, Region, Country from a URL? Django

但不完全确定如何将它们分开。

【问题讨论】:

  • 如何“分离”什么?当你使用 Django 并且可以简单地访问 request.GET 时,为什么要使用 urlparse
  • 你的代码在哪里?你到底卡在哪一步?你能得到网址吗?提取查询参数?解码例如%2C在查询参数值?

标签: python django url parameters


【解决方案1】:

python 2.7

>>> from urlparse import urlparse, parse_qs
>>> u = urlparse('http://localhost:8000/search/?city=New+York%2C+NY%2C+United+States')
>>> q = parse_qs(u.query)
>>> q['city']
['New York, NY, United States']
>>> q['city'][0].split(', ')
['New York', 'NY', 'United States']

【讨论】:

    【解决方案2】:

    只需在 Django 视图函数中。 request 对象具有 request.GET 属性。

    def my_view(request):
        crc = request.GET.get(city, None)
    
        if crc:
            city, region, country = crc.split(',')
    
        # ...
    

    【讨论】:

      【解决方案3】:

      使用 django 请求对象“domain/search/?city=vienna”

      基于 django 类的视图

      self.request.GET['city']
      

      基于 django 函数的视图

      def get_something(request):
          return HttpResponse("%s" % request.GET['city'] )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-05
        • 1970-01-01
        • 2021-09-27
        • 2018-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多