环境:Django2.2,pycharm社区版,python3.6.4
问题:Django启动成功,页面刷新该网页无法正常工作,此时debug报 codec can't decode byte 0xb3 in position 141: invalid start byte
mysite.urls
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]
view.py
from django.shortcuts import render
from blog.models import BlogArticle
def blog_title(request):
# 取出所有博客文章
blogs = BlogArticle.objects.all()
# 需要传递给模板(templates)的对象
return render(request, 'blog/titles.html', {"blogs":blogs})
blog.py
from blog import views
from django.urls import path
urlpatterns = [
# path函数将url映射到视图
path('', views.blog_title, name='blog_title'),
]
base.html
{% for article in articles %}
{{ article.title }}
Django启动成功,页面刷新该网页无法正常工作,此时debug报 codec can't decode byte 0xb3 in position 141: invalid start byte
Traceback (most recent call last):
File "E:\software\selenium software\python-3.6.4\lib\threading.py", line 884, in _bootstrap
self._bootstrap_inner()
File "E:\software\selenium software\python-3.6.4\lib\threading.py", line 926, in _bootstrap_inner
(self.name, _format_exc()), file=_sys.stderr)
File "E:\software\selenium software\python-3.6.4\lib\traceback.py", line 163, in format_exc
return "".join(format_exception(*sys.exc_info(), limit=limit, chain=chain))
File "E:\software\selenium software\python-3.6.4\lib\traceback.py", line 117, in format_exception
type(value), value, tb, limit=limit).format(chain=chain))
self._load_lines()
File "E:\software\selenium software\python-3.6.4\lib\traceback.py", line 522, in _load_lines
self.context._load_lines()
File "E:\software\selenium software\python-3.6.4\lib\traceback.py", line 522, in _load_lines
self.context._load_lines()
File "E:\software\selenium software\python-3.6.4\lib\traceback.py", line 522, in _load_lines
self.context._load_lines()
[Previous line repeated 7 more times]
File "E:\software\selenium software\python-3.6.4\lib\traceback.py", line 520, in _load_lines
frame.line
File "E:\software\selenium software\python-3.6.4\lib\traceback.py", line 282, in line
self._line = linecache.getline(self.filename, self.lineno).strip()
File "E:\software\selenium software\python-3.6.4\lib\linecache.py", line 16, in getline
lines = getlines(filename, module_globals)
File "E:\software\selenium software\python-3.6.4\lib\linecache.py", line 47, in getlines
return updatecache(filename, module_globals)
File "E:\software\selenium software\python-3.6.4\lib\linecache.py", line 137, in updatecache
lines = fp.readlines()
File "E:\software\selenium software\python-3.6.4\lib\codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 141: invalid start byte
我的解答思路和尝试过的方法
主机名改成英文名
修改默认编码格式
期望效果
个人博客显示文章标题成功
取出所有博客文章之后进行.encode("GBK")改下编码