python - 路径功能无法识别问号

标签 python regex django url

我正在开发一个 Django 网络应用程序。我正在尝试实现一个可以与 url“通信”的搜索字段。

我希望 http://127.0.0.1:8000/contract/ 当我在搜索字段中输入 id 时,它会将我重定向到 http://127.0.0.1 :8000/合约/id

问题是,当使用搜索字段时,它会将我重定向到 http://127.0.0.1:8000/contract/?search=id,这并不是真正的问题。但是当我尝试定义 urlpattern 时,它不会“识别”url 中的问号。结果是我无法访问正确的模板。

urlpatterns = [
    path('?search=<id_contract>/', app_views.view_contract),
    path('', app_views.contract, name='my_contract'),
]

我看到了两种可能的解决方案:要么我会尝试找到一种方法来删除那个问号,但我还没有真正找到在哪里做,所以我非常感谢你的帮助!

第二个选项包括使用正则表达式,但到目前为止我尝试过的方法没有用:

re_path(r'.+\?.*'+'search'+'(?P<id_contract>)/$'

最佳答案

Django 使用请求路径来确定要应用的 url 模式。路径是 URL 的 http://domain:port/ 部分之后和 ?arg1=value1&arg2=value2 部分之前的所有内容。在这两种情况下,您的路径都是 contract/

要在 ? 之后处理参数,您应该在端点中使用 request.args 或其他方式编写特定代码。但是,对于您的情况,我认为您应该停止使用默认搜索表单并编写一些 JavaScript 以使其根据需要导航到 contract/id

关于python - 路径功能无法识别问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51399804/

相关文章:

django - 使用 formset 在 Django 上此字段是必填错误

java - 我想替换以 # 开头的字符串中的内容,如果它以 !# 开头,则必须跳过它

c# - 在 asp.net MVC 2 中优雅地处理表单提交时的 HTML 标签

python - 全局变量未绑定(bind)局部错误

python - 如何一次在 Pandas 数据框中设置多个值?

regex - python正则表达式提取坐标

python - 查询数据库而不需要任何迁移 Django

django - django中比萨的阿拉伯语问题

python - Outlook 2010 和 Python 电子邮件 smtplib - 正确字段中的信息

python - 类型错误 : native Qt signal is not callable