Django将新行放在变量的末尾,而烧瓶没有

时间:2015-02-10 23:06:13

标签: jquery python django flask

对,所以我一直把头发拉过这一点。这对我的应用程序来说并不是绝对至关重要,但它会使一切看起来更好。

我正在将我的Flask应用程序转换为Django(以适应我的其他相关Django Web应用程序)。

一切都很顺利,我几乎所有的功能都是我的原始应用程序(当它使用大部分相同的代码时相当容易)。

发生的事情是我的Jquery从Django / Flask视图请求ID,并根据该视图的输出返回结果。这绝对没问题。

什么不起作用是我在Jquery文件中写的“捕获”(比如输入了无效的ID)。

Flask返回

No service assigned to that ID|

我想要的,Django返回的地方

No service assigned to that ID
|

(注意:没有管道“|”实际上返回,这只是为了显示返回值后光标所在的位置)

这似乎是一个小小的差异,但它目前正在破坏我的代码,我无法看到另一种解决方法。

正如您所看到的,Django使用额外的行输出值。 这是我正在使用的代码示例(两者中几乎相同)

python :( Flask和Django)

error = "No service assigned to that ID"

JQuery的

(AJAX stuff above here. returned value is 'reply')

if((reply) == 'No service assigned to that ID') {
  $('#spinner').empty().append("No service assigned to that ID");
}
else {....}

2 个答案:

答案 0 :(得分:1)

您可以在Python中使用string.strip()或在Javascript中使用string.trim()删除任何前导和尾随空格,包括换行符。

# Will remove leading/trailing whitespace from any response
return HttpResponse(template.render(contextelements).strip())

// Will compare with the trimmed result (tough `reply` is not changed)
if(reply.trim() == 'No service assigned to that ID') {

您应该使用哪一个取决于您是要从所有响应中删除空格还是仅仅进行此比较。

答案 1 :(得分:0)

我决定只使用它。

将“==”更改为“.contains”,因此它不必是绝对匹配,只需包含相同的文本。

if((reply).contains('No service assigned to that ID')) {
  $('#spinner').empty().append("No service assigned to that ID");
}
else {....}