Django中如何在URL中添加参数

URL映射

        视图写完后,要与URL进行映射,也即用户在浏览器中输入什么 url 的时候可以请求到这个视图函 数。在用户输入了某个 url ,请求到我们的网站的时候, django 会从项目的 urls.py 文件中寻找对应 的视图。在 urls.py 文件中有一个 urlpatterns 变量,以后 django 就会从这个变量中读取所有的匹配 规则。匹配规则需要使用 django.urls.path 函数进行包裹,这个函数会根据传入的参数返回 URLPattern 或者是 URLResolver 的对象。

urlpatterns = [
    # path("admin/", admin.site.urls),
    path('index/',views.index),
    path('user/list/',views.user_list),
    path('user/add/',views.user_add),
    path('book',views.book_detail_string),
    path('book/<int:book_id>',views.book_detail_path)

]

URL中添加参数

        比如简书某篇文章的详情页的url,是 https://www.jianshu.com/p/a5aab9c4978e 后面的 a5aab9c4978e 就是这篇文章的 id ,那么简书的 文章详情页面的url就可以写成 https://www.jianshu.com/p/ ,其中id就是文章的id。那么如何在 django 中实现这种需求呢。这时候我们可以在 path 函数中,使用尖括号的形式来定义一个参数。比如 我现在想要获取一本书籍的详细信息,那么应该在 url 中指定这个参数。

urls.py的代码如下:

urlpatterns = [
    # path("admin/", admin.site.urls),
    path('index/',views.index),
    path('user/list/',views.user_list),
    path('user/add/',views.user_add),
    path('book',views.book_detail_string),
    path('book/<int:book_id>',views.book_detail_path)

]

views.py的代码如下:

def book_detail_string(request):
    book_id = request.GET.get('id')
    name = request.GET.get('name')
    return HttpResponse(f"您查找的图书id是:{book_id},图书名称是:{name}")

def book_detail_path(request,book_id):
    return HttpResponse(f"您查找的bookid是{book_id}")

1.book_detail_string函数:

  • 它通过查询字符串(Query String)来接收参数。查询字符串是URL中?后面的部分,例如http://example.com/books?id=123&name=Python
  • 函数使用request.GET.get('id')request.GET.get('name')来获取查询字符串中的idname参数。
  • 如果请求中没有提供这些参数,get方法将返回None

2.book_detail_path函数:

  • 它通过URL路径来接收参数。路径参数是在URL的路径部分指定的,例如http://example.com/books/123,其中123是一个路径参数。
  • 函数定义中的book_id参数将自动从URL的路径中获取相应的值。
  • 这种方式通常需要在Django的URL配置中指定,例如使用path('books/<int:book_id>/', views.book_detail_path, name='book_detail')来定义URL模式。

实现结果如下:

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元气满满的热码式

感谢您的支持!我会继续努力发布

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值