Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python URL在my Django项目中传递参数_Python_Django - Fatal编程技术网

Python URL在my Django项目中传递参数

Python URL在my Django项目中传递参数,python,django,Python,Django,我只是一个Django的初学者,这几天我跟随mooc学习Django,我想建立我的第一个网站,但出了点问题,我想不出来。我想在URLS.py中编写一个带有参数'cate'的正则表达式,以匹配my view.py中的视频函数,判断'cate'是否等于'editors',如果是,它将返回具有属性“editors\u choice”的数据。然而,我发现它没有变化,所以我在view.py中打印了“cate”,发现它总是没有变化,我仍然不知道为什么 以下是我的代码: def video(request,

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

以下是我的代码:

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)



在第一个模式中添加一个正则表达式字符串结尾字符,以防止它与第二个模式重叠

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

我通过在第一个url后添加$来解决这个问题,但不更改名称。我仍然非常感谢你在我挣扎了几天的几分钟内解决了我的问题。