正如@DrTyrsa 所说,您可以使用StripWhitespaceMiddleware。或者,如果你只是偶尔想去掉空格,你可以把这个中间件的核心拉到一个实用程序类中,如下所示:
import re
from django.template import loader, Context
class StripWhitespace():
"""
Renders then strips whitespace from a file
"""
def __init__(self):
self.left_whitespace = re.compile('^\s+', re.MULTILINE)
self.right_whitespace = re.compile('\s+$', re.MULTILINE)
self.blank_line = re.compile('\n+', re.MULTILINE)
def render_clean(self, text_file, context_dict):
context = Context(context_dict)
text_template = loader.get_template(text_file)
text_content = text_template.render(context)
text_content = self.left_whitespace.sub('', text_content)
text_content = self.right_whitespace.sub('\n', text_content)
text_content = self.blank_line.sub('\n', text_content)
return text_content
然后你可以像这样在你的views.py中使用它:
def text_view(request):
context = {}
strip_whitespace = StripWhitespace()
text_content = strip_whitespace.render_clean('sample.txt', context)
return HttpResponse(text_content)
请注意,我添加了一个blank_line
正则表达式,因此您可以删除所有空行。如果您仍希望在部分之间看到一个空行,则可以删除此正则表达式。