Python 如何在django中展开url?
我创建这个简单的代码是为了了解django中的登录和注册。我的观点是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
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>