Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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
Django 作为变量的链接没有正确地从模板传递到url.py到views.py_Django - Fatal编程技术网

Django 作为变量的链接没有正确地从模板传递到url.py到views.py

Django 作为变量的链接没有正确地从模板传递到url.py到views.py,django,Django,我正在尝试构建一个页面,其中YouTube播放器嵌入了默认加载的视频。在侧边栏上,我有一些其他视频的图片。单击其中一张图片时,模板会重新加载,但YouTube播放器现在正在播放另一个视频。每个图片都有一个YouTube url,点击时需要播放。非常类似于任何视频的YouTube页面 HTML: 我认为传递整个youtube url并不理想。只需将视频ID作为GET参数传递,即可简化此过程,如下所示: # urls.py urlpatterns = [ # Video Sections

我正在尝试构建一个页面,其中YouTube播放器嵌入了默认加载的视频。在侧边栏上,我有一些其他视频的图片。单击其中一张图片时,模板会重新加载,但YouTube播放器现在正在播放另一个视频。每个图片都有一个YouTube url,点击时需要播放。非常类似于任何视频的YouTube页面

HTML:


我认为传递整个youtube url并不理想。只需将视频ID作为GET参数传递,即可简化此过程,如下所示:

# urls.py
urlpatterns = [
    # Video Sections
    url(r'^library/tests/', 'bt.views.tests', name='tests'),
    url(r'^library/videos/', 'bt.views.videos', name='videos'),
]

# views.py
def videos(request):
    link = 'https://www.youtube.com/embed/{}'.format(
        request.GET.get('id', 'Qj4nEYQA9ks')
    )
    return render_to_response('videos.html', {'link': link})

# videos.html
<a href="{% url 'videos' %}?id=EWrT-aBDxeI">
    <img src="/images/X.jpg" alt="Video name thumbnail">
</a>
<iframe width="420" height="315" src="{{ link }}" frameborder="0" allowfullscreen></iframe>
#url.py
URL模式=[
#视频部分
url(r“^library/tests/”,“bt.views.tests”,name='tests'),
url(r“^library/videos/”,“bt.views.videos”,name='videos'),
]
#views.py
def视频(请求):
链接https://www.youtube.com/embed/{}格式(
request.GET.GET('id','Qj4nEYQA9ks')
)
返回render_to_响应('videos.html',{'link':link})
#videos.html

如果有什么不清楚的地方,请告诉我。

我认为传递整个youtube url并不理想。只需将视频ID作为GET参数传递,即可简化此过程,如下所示:

# urls.py
urlpatterns = [
    # Video Sections
    url(r'^library/tests/', 'bt.views.tests', name='tests'),
    url(r'^library/videos/', 'bt.views.videos', name='videos'),
]

# views.py
def videos(request):
    link = 'https://www.youtube.com/embed/{}'.format(
        request.GET.get('id', 'Qj4nEYQA9ks')
    )
    return render_to_response('videos.html', {'link': link})

# videos.html
<a href="{% url 'videos' %}?id=EWrT-aBDxeI">
    <img src="/images/X.jpg" alt="Video name thumbnail">
</a>
<iframe width="420" height="315" src="{{ link }}" frameborder="0" allowfullscreen></iframe>
#url.py
URL模式=[
#视频部分
url(r“^library/tests/”,“bt.views.tests”,name='tests'),
url(r“^library/videos/”,“bt.views.videos”,name='videos'),
]
#views.py
def视频(请求):
链接https://www.youtube.com/embed/{}格式(
request.GET.GET('id','Qj4nEYQA9ks')
)
返回render_to_响应('videos.html',{'link':link})
#videos.html

如果有什么不清楚的地方,请告诉我。

您必须对此处的每个链接使用ajax或返回json。您试图使其成为一个单页应用程序,同时调用一个完全重新加载模板的视图,因此您必须对其进行ajaxify或返回json,并在前端进行更多计算。更多信息请参见,您必须对每个链接使用ajax,如此处所示,或者返回json。您试图使其成为一个单页应用程序,同时调用一个完全重新加载模板的视图,因此您必须对其进行ajaxify或返回json,并在前端进行更多计算。看到更多关于这个嘿,RL,我不知道你的大脑是如何连接的,但它像魔术一样工作!非常感谢。如果我有能力授予哈利·波特勋章,你完全可以得到一枚。同时,您是否建议完全阅读django文档?我没有,因为它相当大,而且我目前没有那么多时间,但我确实想在这个环境中相当熟练地进行开发。“我三周前就开始工作了,不确定我花的时间是太多还是太少。”DeepakMp然后给这个人一个公认的答案。我还强烈建议您阅读整个文档,它非常有用,没有那么大,也不是很简洁。@DeepakMp Ha,我想我现在需要的是您将其作为公认的答案。:)不管怎样,正如wtower所说,强烈建议您阅读整个文档,但是如果您没有太多时间,那么您可以开发您想要的应用程序,然后如果遇到任何问题,请返回文档。嘿,RL,我不知道您的大脑是如何连接的,但这就像魔术一样工作!非常感谢。如果我有能力授予哈利·波特勋章,你完全可以得到一枚。同时,您是否建议完全阅读django文档?我没有,因为它相当大,而且我目前没有那么多时间,但我确实想在这个环境中相当熟练地进行开发。“我三周前就开始工作了,不确定我花的时间是太多还是太少。”DeepakMp然后给这个人一个公认的答案。我还强烈建议您阅读整个文档,它非常有用,没有那么大,也不是很简洁。@DeepakMp Ha,我想我现在需要的是您将其作为公认的答案。:)无论如何,正如wtower所说的,强烈建议您阅读整个文档,但是如果您没有太多时间,那么您可以开发您想要的应用程序,然后在遇到任何问题时返回文档。
@csrf_exempt
def videos(request, link1 = "https://www.youtube.com/embed/Qj4nEYQA9ks"):
    content = {"link" : link1}
    return render_to_response('videos.html', content)
# urls.py
urlpatterns = [
    # Video Sections
    url(r'^library/tests/', 'bt.views.tests', name='tests'),
    url(r'^library/videos/', 'bt.views.videos', name='videos'),
]

# views.py
def videos(request):
    link = 'https://www.youtube.com/embed/{}'.format(
        request.GET.get('id', 'Qj4nEYQA9ks')
    )
    return render_to_response('videos.html', {'link': link})

# videos.html
<a href="{% url 'videos' %}?id=EWrT-aBDxeI">
    <img src="/images/X.jpg" alt="Video name thumbnail">
</a>
<iframe width="420" height="315" src="{{ link }}" frameborder="0" allowfullscreen></iframe>