首页 > 其他分享 >[Django]页面跳转踩坑的路径问题

[Django]页面跳转踩坑的路径问题

时间:2022-11-02 20:46:44浏览次数:73  
标签:index views Django html 跳转 path hello 页面

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

创建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了,最后跳转正常

 

标签:index,views,Django,html,跳转,path,hello,页面
From: https://www.cnblogs.com/C418-minecraft/p/16852354.html

相关文章

  • DJango + Vue 文件下载
    后端importrequestsfromdjango.httpimportFileResponsefromdjango.utils.encodingimportescape_uri_pathdefdownload_file(request): ifrequest.method==......
  • Django当中如何实现用xlwt来导出一个excel文件?
     将数据导出到excel表格中,也算是我们开发中经常用到的功能,这里用到了python的xlwt模块。 1、安装xlwt模块在你的django虚拟环境中安装:1pipinstallxlwt2.mod......
  • 获取 - 重定向前 - 页面cookie
    前言:作者自己在学习编写爬虫程序时,碰到需要登陆后才能访问详情也的情况,当我满心欢喜的使用POST提交user及password后并没有获得登录验证后的cookie简单说,我登录操作失败......
  • linux 中 vim编辑器如何跳转到指定的列、如何跳转到行首或者行尾、左右跳转
     001、跳转到指定列n+|(管道)或者0nl(小写的L) 002、跳转到行首、行尾0:行首$:行尾home:行首end:行尾 003、左右移动nl(小写的L):向右移动n位hl(小写的L):向左移动n......
  • vscode路径映射跳转
    第一步在项目目录下找到jsconfig.json文件,设置下面代码//{//"compilerOptions":{//"baseUrl":"./",//"paths":{//"@/*":["src/*"]//......
  • python基于django的自媒体分享展示平台(源码调试+讲解+文档)
    ......
  • Django+drf项目创建
    1.创建虚拟环境condacreate-n虚拟环境名python=3.x 2.安装django版本的包pipinstalldjango==3.x.x 3.安装drf包pipinstalldjangorestframework 4.创建......
  • Django FileResponse下载文件
    djangoFileResponse下载文件代码如下:fromdjango.httpimportFileResponsedefget(self,request,*args,**kwargs):file_path=/Users/zonghan/Deskto......
  • 什么是404页面?
    官方解释:就是有的网址你点击过去,因为某些原因是死链接(可能也是无意的),死链接在搜索引擎眼中是很差的评价。所以我们就做一个页面,叫做“404页面”,这样任何死链接打开都是404......
  • DJango + Vue 跨域问题解决
    什么是跨域同源:协议+域名+端口号,三者完全相同以上三个元素只要有一个不相同就是跨域产生跨域异常的报错信息如下:accesstoxmlhttprequestat'http://ip:port1/a......