почему домашняя страница не отображается, пока runserver в django и после загрузки в heroku не работает? - PullRequest
0 голосов
/ 29 октября 2019

начиная с нового в django, сначала я запускаю pipenv и pipenv shell в cmd, а затем я описал проект "pages" в django.

в файле 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'),
]

Я создал три html-файла в pages / templates / ..... home.html, base.html и about.html

home.html code:

{%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.

, но ссылка работает, а база показывает переднюю грань. это моя первая проблема.

после установки героку и настройки учетной записи. я пытался поместить все файлы из git commit. когда я пишу следующую команду:

heroku ps:scale web=1
heroku open

она показывает приветствие на странице heroku, а во второй строке отображается страница документации. но он должен показывать страницу base.html. я использовал браузер maxthon и mozilla для localhost и использовал cmd в качестве администратора. это моя вторая проблема

Я застрял на этой штуке последние пару дней и до сих пор не знаю, как ее исправить. Я новичок в Джанго.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

наконец я исправил первую проблему, которая состояла в том, чтобы связать домашнюю страницу со ссылкой на мою домашнюю страницу.

код во всех файлах django в порядке, но я изменил некоторые коды в базовом html-файле. я написал:

................ Главная | О ................

но так и должно быть:

................. Главная / О ........ ..............

я знаю, что это глупые и очень базовые ошибки, но я застрял в этой штуке более 2 недель.

Моя вторая проблема еще не решена и связана с герою. если у кого-то есть идеи, пожалуйста, дайте мне знать. Спасибо всем за попытку

0 голосов
/ 29 октября 2019

Похоже, есть несколько проблем.

Во-первых, где вы разместили шаблон домашней страницы? Это должно быть в pages / templates / pages / 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 должен находиться в проекте / 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',
        ],
    },
},
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...