当我单击 bms_homepage.html 中的登录按钮时,为啥“找不到页面”?

Posted

技术标签:

【中文标题】当我单击 bms_homepage.html 中的登录按钮时,为啥“找不到页面”?【英文标题】:Why "Page not found" when I click on login button in bms_homepage.html?当我单击 bms_homepage.html 中的登录按钮时,为什么“找不到页面”? 【发布时间】:2020-06-13 12:58:56 【问题描述】:

URLS.PY

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.homepage, name='homepage'),
    path('login', views.login, name='login'),
]

VIEWS.PY

from django.http import HttpResponse
from django.shortcuts import render


def homepage(request):
    return render(request, 'bms_homepage_template/bms_homepage.html')

def login(request):
    return render(request, 'bms_homepage_template/login_page.html')

login_page.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login Page</title>
</head>
<body>
    <h1>LOGIN INTO YOUR ACCOUNT</h1>

    <form action="">
        Account Number:
        <input type="text"> <br>
        Password:
        <input type="text"> <br>
        <input type="submit" value="submit">

    </form>
</body>
</html>

bms_homepage.html

<a href="login_page.html"><button id="login">LOGIN</button></a>

我想要做的是来自 homepage.html,当我点击登录按钮时,它应该打开 login_page.html 但它向我显示了这个错误。

找不到页面

请用简单的话解释一下。

【问题讨论】:

请不要在标题中使用全部大写字母。这被认为是大喊大叫。 因为你没有login_page.html。该页面在您的urls.py 中名为login 【参考方案1】:

您应该引用 url 模式名称而不是模板名称。

在您的情况下,url 模式名称是 login:

urlpatterns = [
    ..
    path('login', views.login, name='login'), <<<--- "name" argument value
]

要引用这个模式,你应该像这样使用 url-reversion 模板标签:

<a href="% url 'login' %">...</a>

【讨论】:

以上是关于当我单击 bms_homepage.html 中的登录按钮时,为啥“找不到页面”?的主要内容,如果未能解决你的问题,请参考以下文章

当我单击媒体播放器中的列表视图时,正在播放多首歌曲

当我单击 AdminLTE 3.0 中的子菜单时,如何折叠导航树视图?

当我单击 Eclipse 中的按钮时,使用 tabHost 并转到特定选项卡

当我单击目标 C 中的一个按钮(添加按钮)时,如何创建一组按钮?

为啥当我单击目标 c 中的按钮时未从 tableViewCell 获取文本字段数据?

当我单击电子邮件验证链接时,我的方法输入中的 activationCode 为空