如何解决找不到页面404-python django的问题?

时间:2020-11-12 03:46:05

标签: python-3.x django

我创建了一个应用程序,该应用程序具有作为主页面的index.html,当我运行“ py manage.py runserver”命令时,它将打开索引页面。然后,我为主页创建了另一个应用程序,并添加了URL,创建了视图以及据我所知的所有内容。但是,当我单击“主页”时,它导航到“ http://127.0.0.1:8000/static/home.html”,并说“找不到页面(404)”和“找不到'home.html'”我会将我的代码粘贴到下面

webapp \ settings.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'tbs',
    'tbs_home'
]

webapp \ urls.py: urlpatterns = [

path('', include('tbs.urls')),
    path('tbs_home', include('tbs_home.urls')), 
    path('admin/', admin.site.urls)
    
]   

tbs_home \ urls.py:

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

tbs_home \ views.py:

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

templates \ home.html:

{% extends 'index.html' %}
 {% load static%}

 {% block content%}

<h1 style = "font-family:Georgia;font:40px;font-style:normal;">Hi! {{name}}</h1>
<form action="add" method="POST">
    {% csrf_token %}
    Enter 1st num : <input type="text" name="num1"><br>
    Enter 2nd num : <input type="text" name="num2"><br>
    <input type="submit">
</form>
{% endblock %}

templates \ index.html:

这是在“ index.html”页面中提供“ home.html”链接的部分

<div class="col-xs-10 text-right menu-1">
<ul>
 <li class="active"><a href="{% static 'home.html' %}">Home</a></li>

我想我已经提供了必要的代码段,谢谢您的提前帮助。单击主页按钮后,我应该能够从索引页面导航到主页。

2 个答案:

答案 0 :(得分:0)

将静态标签替换为url标签

<li class="active"><a href="{% url 'tbs_home:home' %}">Home</a></li>

':'前面的部分告诉django要查看的应用程序,':'之后的部分说明要使用的URL。 static标签将其指向您不需要的staticfiles目录

在tbs_home \ urls.py中,添加app_name

app_name = 'tbh_home'

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

然后在webapp \ urls.py中,向网址添加尾部反斜杠,例如:

urlpatterns = [
    path('tbs_home/', include('tbs_home.urls')), 
    path('admin/', admin.site.urls)
]   

答案 1 :(得分:0)

in tbs_home\urls.py:

将其更改为:

urlpatterns = [
    path('home/',views.home, name='home'),# adding comma is important
]
webapp\urls.py: urlpatterns = [path('', include('tbs.urls')),
    path('tbs_home/', include('tbs_home.urls')), 
    path('admin/', admin.site.urls), # adding comma is important
    
]   

将已安装的应用程序更改为:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]