如图所示,django无法渲染html显示成下载文件了
一步一步的从render ==》HttpResponse ==》HttpResponseBase 找到
即django文件夹下的http文件夹内的response.py文件
classHttpResponseBase:"""An HTTP response base class with dictionary-accessed headers.
This class doesn't handle content. It should not be used directly.
Use the HttpResponse and StreamingHttpResponse subclasses instead."""status_code= 200
def __init__(self, content_type=None, status=None, reason=None, charset=None):#_headers is a mapping of the lower-case name to the original case of
#the header (required for working with legacy systems) and the header
#value. Both the name of the header and its value are ASCII strings.
self._headers ={}
self._closable_objects=[]#This parameter is set by the handler. It's necessary to preserve the
#historical behavior of request_finished.
self._handler_class =None
self.cookies=SimpleCookie()
self.closed=Falseif status is notNone:try:
self.status_code=int(status)except(ValueError, TypeError):raise TypeError('HTTP status code must be an integer.')if not 100 <= self.status_code <= 599:raise ValueError('HTTP status code must be an integer from 100 to 599.')
self._reason_phrase=reason
self._charset=charsetif content_type isNone:
content_type= '%s; charset=%s' %(settings.DEFAULT_CONTENT_TYPE,
self.charset)
self['Content-Type'] = content_type
需要在django项目下的settings.py文件添加下面内容
DEFAULT_CONTENT_TYPE = 'text/html'
为了保证Content-Type的值返回正常的值
将response.py的
self['Content-Type'] = content_type
更改成
self['Content-Type'] = content_type if type(content_type) == type('') else 'text/html; charset=utf-8'
然后重新dajngo服务
成功渲染html文件
原文链接:https://www.cnblogs.com/canmeng/p/10677945.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有