【问题标题】:Django url parameter passingDjango url 参数传递
【发布时间】:2014-03-22 06:36:03
【问题描述】:

我什至不确定这个问题属于 Django 中的哪个类别,而且我对 django 很陌生。我曾尝试查找 Django 发布请求、参数传递,甚至在 Django API 下进行检查,但没有找到我要查找的内容。我想要做的是为我的客户端创建一个 API,但它必须在 Django 中完成。如果我要在 .Net 中执行此操作,我可以使用 http post 和 http get 以及 Web 服务,但我完全不确定在 Django 中是如何完成的。我的客户想要做的是能够看到:

  1. 在 URL 中输入用户名和密码以及日期和 ID 参数,并能够根据输入的内容查看可用房间
  2. 输入用户名、密码、日期和房间代码以预订房间

无需接口,只需通过 url 传递简单的参数。这对 Django 是否可行,如果可以,有人可以指出我正确的方向。

【问题讨论】:

    标签: python django api parameter-passing url-parameters


    【解决方案1】:

    你要找的是captured parameters

    下面是来自上述链接的代码sn-p。

    # urls.py
    from django.conf.urls import patterns, url
    
    urlpatterns = patterns('blog.views',
        url(r'^blog/(?P<year>\d{4})/$', 'year_archive', {'foo': 'bar'}),
    )
    
    # views.py
    def year_archive(request, year, foo=None):
        # view method definition
    

    【讨论】:

    • 我不太明白。您从 url 传递 year 参数。但是你也试图传递一个值为'bar'的foo参数,对吧?
    • 你是对的。我在方法签名中缺少 foo 参数。我会把它添加进去。
    【解决方案2】:

    从 Django 1.10 开始,patterns 已从 Django 中删除。

    这是 2019 年的 Django 2.2 解决方案。

    看起来 re_path 是当前推荐的通过正则表达式捕获参数的工具:
    https://docs.djangoproject.com/en/2.2/ref/urls/#re-path

    # urls.py
    from django.urls import re_path
    
    from myapp import views
    
    urlpatterns = [
        re_path(r'^blog/(?P<year>\d{4})/$', 'year_archive', {'foo': 'bar'}),
    ]
    
    # views.py
    def year_archive(request, year, foo=None):
        # view method definition
    

    【讨论】:

      猜你喜欢
      • 2021-01-05
      • 1970-01-01
      • 2023-03-04
      • 2021-09-12
      • 2011-12-19
      • 2019-05-19
      • 2018-07-07
      • 2018-03-21
      • 2018-09-06
      相关资源
      最近更新 更多