Python 如何在django中展开url?

Python 如何在django中展开url?,python,django,django-views,django-templates,Python,Django,Django Views,Django Templates,我创建这个简单的代码是为了了解django中的登录和注册。我的观点是 def index(request): products = Product.objects.all() return render(request,'index.html',{'products':products}) def register(request): return render(request,'register.html') def login(request): ret

我创建这个简单的代码是为了了解django中的登录和注册。我的观点是

def index(request):
    products = Product.objects.all()
    return render(request,'index.html',{'products':products})


def register(request):
    return render(request,'register.html')

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

def logout(request):
    return HttpResponse('logout')
url.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index),
    path('register/', views.register),
    path('login/', views.login),
    path('logout/', views.logout),
]
base.html

<a href="register">Register</a>
<a href="login/">Login</a>
<h3>Base html </h3>
{% block content %}


{% endblock %}

基本html
{%block content%}
{%endblock%}
register.html

{%extends 'base.html'%}

<h1>Register</h1>

{% block content %}

{% endblock %}
{%extends'base.html%}
登记
{%block content%}
{%endblock%}
login.html

{%extends 'base.html'%}

<h1>Login</h1>

{% block content %}

{% endblock %}
{%extends'base.html%}
登录
{%block content%}
{%endblock%}

当我点击
Register
链接时,它会跟随到第页,但当我点击该页的“Register”链接时,它会跟随到第页,给出404错误。我如何展开下面的url,而不是转到
http://127.0.0.1:8000/register/register
它必须运行
http://127.0.0.1:8000/register/

还没有从项目端看到您的基本URL,但我猜您是这样做的 您可以从项目文件的基本URL中删除注册表

path(
        'register/',
        include('register.urls'),
    ),

在你的基地。html您通常应该使用
{%url'寄存器“%}

这样说:

<a href="{% url 'register' %}">Register</a>
另请参见settings.py顶部的
import os.path

编辑

指定url.py时,应为每个url命名

path('register/', views.register, name='register'),

因此,在
中,您可以调用url的名称为url命名是解决此问题的最佳实践。只需给他们命名,并在HTML文件中引用这些名称

我的解决方案:

url.py

 urlpatterns = [
    path('', views.index),
    path('register/', views.register,name="register"),
    path('login/', views.login,name="login"),
    path('logout/', views.logout,name="logout"),
]
base.html

<a href="{% url 'register'%}">Register</a>
<a href="{% url 'login'%}">Login</a>
<h3>Base html </h3>

基本html

能否显示
index.html
<a href="{% url 'register'%}">Register</a>
<a href="{% url 'login'%}">Login</a>
<h3>Base html </h3>