我创建了一个应用程序,该应用程序具有作为主页面的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>
我想我已经提供了必要的代码段,谢谢您的提前帮助。单击主页按钮后,我应该能够从索引页面导航到主页。
答案 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',
]