python - URL 在我的 Django 项目中传递参数

原文 标签 python django

我只是 Django 的初学者,这几天我跟着 mooc 学习 Django,我想建立我的第一个网站,但是出了点问题,我想不通。我想在 URLS.py 中编写一个带有参数 'cate' 的正则表达式来匹配我的 view.py 中的视频函数,判断 'cate' 是否等于 'editors',如果是,它将带回带有属性“editors_choice”的数据。然而,我发现没有它永远不会改变,所以我在 view.py 中打印了 'cate' 并发现它总是 None ,我仍然不知道为什么。

以下是我的代码:

def video(request, cate=None):
    print(cate)
    context = {} =
    if cate is None:
        video_list = Video.objects.all()
    if cate == 'editors':
        video_list = Video.objects.filter(editors_choices=True)
    else:
        video_list = Video.objects.all()
    page_robot = Paginator(video_list, 16)
    page_num = request.GET.get('page')
    try:
        video_list = page_robot.page(page_num)
    except EmptyPage:
        video_list = page_robot.page(page_robot.num_pages)  # raise HTTP404("Empty")
    except PageNotAnInteger:
        video_list = page_robot.page(1)
    context['video_list'] = video_list
    return render(request, 'ten_movie.html', context)

'cate' parameter in urls.py

templete

最佳答案

将正则表达式字符串结束字符添加到第一个模式以防止它与第二个模式重叠。

url(r'^video/$', video, name='video'),
url(r'^video/(?P<cate>[A-Za-z]+)$', video, name='video'),

关于python - URL 在我的 Django 项目中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44871478/

相关文章:

python - 将多个空行减少为单个(Python 方式)

python - 多列、不同类型、不同长度如何爆炸?

python - 传递给函数时,参数从字典中消失

python - Django模板中基于“ifchanged”的行着色?

python - Caffe:差不多完成了,但是停留在最后一步

python - 调用“any()”后未保留迭代器值

python - 在不使用for循环的情况下将值应用于DataFrame

python - Django,过滤一个结果等于一个值的不同外键

javascript - django bootstrap datetimepicker

python - Docker:优雅地停止 django 服务器