在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的新手。
答案 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有关的第二个问题仍未解决。如果有人有任何想法,请告诉我。谢谢大家的感谢