小编Nin*_*and的帖子

Django:当目标URL也是重定向时测试重定向

所以我正在编写一个分为几个部分的网站,这些网站本身分为几个小节.在我的设置中,当用户点击指向某个部分的链接时(比如说'/ home'),它们会被重定向到其中一个子部分(例如'/ home/cover').此外,当用户转到页面根目录时,它们会被重定向到其中一个部分(在我的情况下为"/ home").有了这样的设置,当有人去根时发生的事情是,他们首先被重定向到'/ home',然后从那里重定向到'/ home/cover'.这些重定向是这样实现的:

主urls.py:

from django.conf.urls import patterns, include, url
from django.views.generic.base import RedirectView

urlpatterns = patterns('',
    url(r'^$', RedirectView.as_view(url='/home')),
    url(r'^home/', include('components.home.urls', namespace='components.home')),
    ...
)
Run Code Online (Sandbox Code Playgroud)

组件/家/ urls.py:

from django.conf.urls import patterns, include, url
from django.views.generic.base import RedirectView

from components.home import views

urlpatterns = patterns('',
    url(r'^$', RedirectView.as_view(url='cover')),
    url(r'^cover$', views.cover, name='home_cover'),
    ...
)
Run Code Online (Sandbox Code Playgroud)

在实践中,这似乎工作正常:我可以导航我的网站,所有重定向都做他们应该做的.但是,我无法弄清楚如何为它们实现单元测试,特别是对于根重定向.

我最初设计的测试如下:

def test_root_url_redirects_to_home_url(self):
    response = self.client.get('/')
    self.assertRedirects(response, '/home', status_code=301)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我遇到了错误:

"AssertionError: 301 != 200 : Couldn't retrieve redirection page '/home':
response code was 301 (expected 200)." …
Run Code Online (Sandbox Code Playgroud)

django unit-testing url-redirection

11
推荐指数
1
解决办法
7566
查看次数

使用 Node.js、Handlebars 和 Express 的模板继承

我刚刚开始使用 Node.js,所以我正在构建非常简单的应用程序以练习基础知识。我试图让一些类似 Django 的模板继承工作,但我对如何去做有点不知所措。

我知道库“express-handlebars”包括布局的概念,我认为这可能是最好的方法,但乍一看我不知道它是否允许不止一步的继承,或者使用它来替换不同的块(我看到了一种通用布局,其中插入了其他模板来代替 {{{body}}} 标记,尽管很可能还有更多技巧)。

所以,我的问题是:如何实现多层模板继承(还有,孩子将内容插入不同的单独块,而不是单个块)?我正在使用 Node.js、Express 和 handlebars,但如果后两者无法实现,我不介意尝试其他框架或模板语言。

谢谢!

编辑:

我的意思的伪代码示例:

首先,我们可以有一个通用的外部模板:

<html>
    <head></head>
    <body>
        <h1> Main Title </h1>
        <h2> {{section name block}} </h2>
        <h3> {{subsection name block}} </h3>
        {{content block}}
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后在它下面的另一个(中间模板),替换一些外部块(并可能添加其他块):

{{inheriting from outer template}}
{{section name block}} Section Three {{/block}}
Run Code Online (Sandbox Code Playgroud)

最后是一个内部的,这将是从 javascript 代码调用的那个:

{{inheriting from middle template}}
{{subsection name block}} Subsection Two {{/block}}
{{content block}}
    <p>This is the content of Section Three, Subsection Two.</p>
{{/block}}
Run Code Online (Sandbox Code Playgroud)

处理内部模板时的结果将是:

<html>
    <head></head>
    <body>
        <h1> Main Title </h1> …
Run Code Online (Sandbox Code Playgroud)

javascript inheritance node.js express handlebars.js

6
推荐指数
1
解决办法
2150
查看次数

Axios未在请求中发送自定义标头(可能是CORS问题)

我遇到了axios似乎不随我的请求发送自定义标头的问题。

我正在这样使用它:

axios({
  method: 'get',
  url: 'www.my-url.com',
  headers: { 'Custom-Header': 'my-custom-value' }
})
Run Code Online (Sandbox Code Playgroud)

但是,查看发送到服务器的实际请求,自定义标头似乎不在任何地方。

REQUEST HEADERS:
  Accept: */*
  Accept-Encoding: gzip, deflate, br
  Accept-Language: es-ES,es;q=0.9
  Access-Control-Request-Headers: custom-header
  Access-Control-Request-Method: GET
  Connection: keep-alive
  Host: my-url.com
Run Code Online (Sandbox Code Playgroud)

我怀疑这可能是CORS问题(响应标头不包括Access-Control-Allow-Headers中的Custom-Header),但是在与API所有者联系之前,我想确定一下。

javascript http-headers cors vue.js axios

5
推荐指数
1
解决办法
2598
查看次数

YouTube iframe 不响应 postMessage 命令

我正在尝试使用来自父级的 postMessage 命令来控制 YouTube iframe,但它似乎不起作用。

\n\n

由于多种原因,我没有使用 YouTube API,只是使用带有 YouTube 嵌入视频的普通 iframe。

\n\n
<iframe id="video-player" :src="\'https://www.youtube.com/embed/\' + code + \'?autoplay=1\'"\n  seamless sandbox="allow-scripts allow-same-origin allow-presentation"></iframe>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我尝试发送命令的方式是:

\n\n
var iframe = document.getElementById(\'video-player\');\niframe.contentWindow.postMessage(JSON.stringify(\n  { event: \'command\', func: \'pauseVideo\' }), \'https://www.youtube.com\');\n
Run Code Online (Sandbox Code Playgroud)\n\n

看来 iframe 已被正确选择,但我不确定是否正在发送 postMessage 命令,因为视频会忽略它们。

\n\n

\xc2\xbf我做错了什么?

\n

javascript youtube iframe postmessage

3
推荐指数
1
解决办法
8223
查看次数