Django 在 flask 没有的变量末尾添加新行

Django puts new line at end of variable where flask does not

没错,所以我一直在为这个问题拉扯我的头发。它对我的应用程序不是绝对重要,但它使一切看起来更好。

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

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

我的 Jquery 从 Django/Flask 视图中请求一个 ID,returns 一个基于该视图输出的结果。这绝对没问题。

我的 'catches' 不起作用,它写在 Jquery 文件中(假设输入了无效的 ID)。

烧瓶returns

No service assigned to that ID|

如我所愿,Django returns

No service assigned to that ID
|

(注意:没有管道“|”,实际上是returns,那只是告诉你返回值后光标在哪里)

这似乎是一个小差异,但它目前正在破坏我的代码,我看不到其他修复方法。

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

python:(烧瓶和 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 {....}

我决定只使用它。

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

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

您可以使用 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') {

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