Django在变量末尾添加了一个新行,而 flask 没有

hc8w905p  于 2023-03-04  发布在  Go
关注(0)|答案(2)|浏览(110)

好的,我已经为这个问题烦恼了一阵子。它对我的申请并不绝对重要,但它让一切看起来更好。
我正在将我的 flask 应用程序转换为Django(以适应我的其他相关Django Web应用程序)。
一切都来accross很好,我几乎所有的功能,因为我原来的应用程序(相当容易,当它使用大多相同的代码)。
我的Jquery从Django / Flask视图中请求一个ID,然后根据该视图的输出返回一个结果。
不起作用的是写在Jquery文件中的“捕获”(比如输入了无效的ID)。
flask 返回

No service assigned to that ID|

如我所愿,当 Django 回来

No service assigned to that ID
|

(note:无管道“|“,实际上返回,这只是为了显示返回值后光标所在的位置)
这似乎是一个小的差异,但它目前正在打破我的代码,我看不到其他方法来修复它。
正如你所看到的,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 {....}
xtfmy6hx

xtfmy6hx1#

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

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

f4t66c6m

f4t66c6m2#

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

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

相关问题