django通过url反转实现带参数的url

通过django的url反转函数reverse()函数,实现带参数的url的反转
首先,我们定义了这样的几个url:
创建了一个bookapp,

from django.urls import path
from . import views


app_name='book'
urlpatterns =[
    path('',views.book),
    path('detail/<book_id>',views.bookdetail,name='details'),
    path('author_id/',views.author_id,name='author_id'),
]

命名空间为app_name='book'
我们的反转需求是:当用户登陆首页时,如果没有附带用户名username参数,就通过url反转和重定向返回到bookapp的'detail/<book_id>'详情页面,其中'detail/<book_id>'页面是附带请求参数的

urlpatterns = [
    path('', index),]
def index(request):
    username = request.GET.get('username')
    if username:
        return HttpResponse("这是首页")
    else:
        reverse_url = reverse('book:details',kwargs = {'book_id':1})
        return redirect(reverse_url)

通过kwargs来传递参数
还有的url是附带诸如?q=xxx的形式的,这样的参数应该如何通过url反抓来获得呢?
与上述方法类似,不同的是:

reverse_url =reverse('book:details')+"?next=/"

这样就可以实现带请求参数的url反转。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容