为什么在django中的runserver时没有显示主页,并且在heroku中上传后却无法正常工作?

时间:2019-10-28 22:21:00

标签: python html django

在Django中开始新的工作,首先我在cmd中运行pipenv和pipenv shell,然后在Django中声明了“ pages”项目。

在pages_project / settings.py文件中:

ALLOWED_HOSTS = ['*']

INSTALLED_APPS = [ ................... 'pages.apps.PagesConfig', # new ]

TEMPLATES = [ {................. 'DIRS': [os.path.join(BASE_DIR,'templates')],.....}

在pages_project / urls.py中:

from django.contrib import admin
from django.urls import path,include

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

在pages / views.py中:

from django.views.generic import TemplateView

# Create your views here.

class HomePageView(TemplateView):
    template_name='home.html'

class AboutPageView(TemplateView):
    template_name='about.html'

在pages / urls.py中:

from django.urls import path
from .views import HomePageView, AboutPageView

urlpatterns = [
    path('about/', AboutPageView.as_view(), name='about'),
    path('', HomePageView.as_view(),name='home'),
]

我在pages / templates / ..... home.html,base.html和about.html中创建了三个html文件

home.html代码:

{%extends 'base.html'%}
{%block content%}

<h1>Homepage</h1>
{%endblock%}

about.html代码:

{%extends 'base.html'%}
{%block content%}

<h1>About Page</h1>
{%endblock%}

base.html代码:

<header> <a href="home">Home</a>|<a href="about">About</a> </header>

{%block content%} {%endblock%}

运行python manage.py runserver base.html和about.html可以正常工作,但是当我单击主页链接时,它显示以下内容:

Using the URLconf defined in pages_project.urls, Django tried these URL patterns, in this order:
admin/
about/ [name='about']
[name='home']
The current path, home, didn't match any of these.

但是关于链接正在工作,并且基座显示了正面。 这是我的第一个问题。

在安装heroku并设置帐户后。我试图从git commit存放所有文件。当我编写以下命令时:

heroku ps:scale web=1
heroku open

它显示欢迎来到heroku页面,第二行显示它的文档页面。但应该显示base.html页面。我已经使用maxthon和mozilla浏览器作为本地主机,并使用cmd作为管理员。 这是我的第二个问题

我在这几天坚持使用此东西,但仍然不知道如何解决。我是django的新手。

2 个答案:

答案 0 :(得分:0)

似乎有几个问题。

首先,您将主页模板放在哪里?它应该在页面/模板/ 页面 /home.html中。

第二,在pages / urls.py中,确保主页url在列表中位于第一位:

urlpatterns = [
  path('', HomePageView.as_view(),name='home'),
  path('about/', AboutPageView.as_view(), name='about'),
]

顺序可能很重要。

在页面视图的第三栏中,重新指定模板名称和路径:

class HomePageView(TemplateView):
template_name='pages/home.html'

您可以在以下网页上掠夺更多信息: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Home_page https://docs.djangoproject.com/en/2.2/topics/templates/

base.html应该位于project / templates / base.html中。 然后在设置中确保您具有以下条件:

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
        os.path.join(BASE_DIR, 'templates'),
    ],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

答案 1 :(得分:0)

最后,我解决了第一个问题,即将主页链接到我的主页链接。

所有django文件中的

代码都可以,但是我已经更改了基本html文件中的一些代码。我写道:

  

................主页|关于   ................

但是应该像这样:

  

.................主页/关于...............................

我知道这是一个愚蠢且非常卑鄙的错误,但是我在这件事上停留了2个多星期。

与heroku有关的第二个问题仍未解决。如果有人有任何想法,请告诉我。谢谢大家的感谢