搞了一个下午,踩各种坑,下面记录一下踩坑过程

创建pythonapp的模板后,在项目文件夹的urls.py中写(index.html为主页面,hello.html是要跳转的页面)

from django.urls import path, include
from pyapp import views

urlpatterns = [
    # path('admin/', admin.site.urls),
    path('', views.index_view, name='index_view'),  # index

    path('pyapp/', include('pyapp.urls')),  # hello

]

pyapp文件夹中写

from django.urls import path
from . import views

urlpatterns = [
    path('hello_view', views.hello_view, name='hello_view'),
]

views中写

from django.shortcuts import render

def index_view(request):
    return render(request, 'index.html')

def hello_view(request):
    return render(request, 'hello.html')

然后创建2个html文件:index.html,hello.html

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
<h1>hello index</h1>
<a href="hello_view">hello1</a>
</body>
</html>

hello.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hello</title>
</head>
<body>
    <h1>helloworld</h1>
</body>
</html>

我将这2个html文件放在pyapp的目录下,然后运行,

结果出现这样的错误

原来是因为在settings.py中

它的路径文件夹实在templates这个模板文件夹中,所以需要我们将2个html文件放在templates下(这里放上Django的模板了解链接Django 模板 | 菜鸟教程 (runoob.com)

 但是当我将这2个html文件放在templates文件夹下运行,发生了这样的报错

嗯?上面的提示是说在我主从路由器中设置的路径中没有找到hello.html这个东西

但是如果我单独打开index.html这个文件的话点击链接进行跳转是不会出现404无法访问的情况呀

找了一圈,找了一个下午的时间,终于发现了问题

确实如果是打开html文件的话是没问题的,但是在django中就不一样了

django是用views.py去处理的,也就是说当index.html要跳转到hello.html的话,那么首先需要到views.py中

但是index.html找不到views.py,那么就需要一条绳子去连接这2个东西,也就是urls.py,

用路径让数据找到传输的方向

这里又要提到二个函数:path和include

path这个函数总共有四个参数,前二个是必须要填的,第一个是路径,第二个是导入的views中的方法(详细请访问:Django 路由 | 菜鸟教程 (runoob.com))这里不多赘述

include的用法:

然后再将urls的参数传入views中定义的方法里,实现跳转

所以在index.html中指定的文件路径应该是

这样访问路径的话就OK了,最后跳转正常

 

原文地址:http://www.cnblogs.com/C418-minecraft/p/16852354.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性