实现两个页面相互链接跳转
1.创建一个空DjangoWeb项目:DjangoWebProject1,会提示需要创建虚拟环境。完成虚拟环境创建,运行后会弹出默认页面。
2.在项目DjangoWebProject1下添加(创建)Django应用:LinkDjangoApp
3.在views.py中增加代码
def index(request): #新增代码,定义名为“index”的视图
return render(request, "LinkDjangoApp/index.html")
def about(request): #新增代码,,定义名为“about”的视图
return render(request,"LinkDjangoApp/about.html")
4.修改setting.py激活应用
INSTALLED_APPS = [
# Add your apps here to enable them
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'LinkDjangoApp.apps.LinkDjangoAppConfig' #新增代码,激活LinkDjangoApp应用
]
5.在urls.py中增加代码:
from django.urls import include, re_path #新增代码
import LinkDjangoApp.views #新增代码
urlpatterns = [
re_path(r'^$', LinkDjangoApp.views.index, name='index'), #新增代码
re_path(r'^home$', LinkDjangoApp.views.index, name='home'), #新增代码
re_path(r'^about$', LinkDjangoApp.views.about, name='about') #新增代码,
# 同时在views.py文件定义def about(request)函数 。在index.html文件建立<a href="about">Go to about page.</a>。
]
6.在index.html添加链接:
<body>
<div><a href="about">Go to about page.</a></div>
</body>
(
这个页面链接文字只能是英文,如果将Go to about page改为中文“关于”就报错:'utf-8' codec can't decode byte 0xd6 in position 167: invalid continuation byte。详细信息:
Message='utf-8' codec can't decode byte 0xd6 in position 167: invalid continuation byte
Source=D:\Projects\PythonDjangoWeb\DjangoWebProjectMaq\DjangoWebProject1\HelloDjangoApp\views.py
StackTrace:
File "D:\Projects\PythonDjangoWeb\DjangoWebProjectMaq\DjangoWebProject1\HelloDjangoApp\views.py", line 6, in index (Current frame)
return render(request, "HelloDjangoApp/index.html")
)
不知道为什么?
7.新建页面about.html,添加链接:
<body>
<div><a href="home">返回主页</a></div>
</body>
(链接文字可以是中文。)
请问index.html中中文报错如何解决?