Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django应用程序中的每个url仅呈现home.html_Python_Django_Web_Backend - Fatal编程技术网

Python django应用程序中的每个url仅呈现home.html

Python django应用程序中的每个url仅呈现home.html,python,django,web,backend,Python,Django,Web,Backend,所以,我对最新的django版本教程不是很幸运,所以我在一些版本之间发生了一些变化。其中一件事是:尽管我完全按照我在教程中阅读/观看的那样做,但我总是得到相同的结果——所有URL重定向到相同的HTML页面 这是我的根URL.py from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), u

所以,我对最新的django版本教程不是很幸运,所以我在一些版本之间发生了一些变化。其中一件事是:尽管我完全按照我在教程中阅读/观看的那样做,但我总是得到相同的结果——所有URL重定向到相同的HTML页面

这是我的根URL.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('theblog.urls')),
]
以下是我的应用程序URL:

from django.conf.urls import url, include
from .views import HomeView, ArticleDetailView

urlpatterns = [
    url('', HomeView.as_view(), name='home'),
    url('^article/<int:pk>', ArticleDetailView.as_view(), name='article-detail'),
]
从django.conf.url导入url,包括
从.views导入HomeView、ArticleDetailView
URL模式=[
url(“”,HomeView.as_view(),name='home'),
url(“^article/”,articletailview.as_view(),name='article-detail'),
]
例如,当我转到localhost:8000/articles/1(或任何其他pk)时,它将home.html(HomeView类)呈现为localhost:8000/


希望你能帮助我。谢谢

这可能是因为这条线

url(“”,HomeView.as_view(),name='home'),

因为<代码> URL<代码>包装>代码> RePixPix<代码>,可能有一些逻辑将空白ReGEX字符串作为通配符对待。尝试将其更改为

'/'

url('/',HomeView.as_view(),name='home'),

您的代码有两个问题

url('^article/<int:pk>', ArticleDetailView.as_view(), name='article-detail'),
请注意,这将在将来被弃用,如果您使用的是django>=2.0,则应使用:

path(“article/”,articletailview.as_view(),name=“article detail”)
然而,这仍然会将你引向错误的观点。django在第一个URL模式匹配后停止

切换它们以修复此问题:

urlpatterns = [
    url("article/([0-9]+)/", ArticleDetailView.as_view(), name="article-detail"),
    # path("article/<int:article>/", ArticleDetailView.as_view(), name="article-detail"),  # alternative with path instead of url
    url('', HomeView.as_view(), name='home')
]
urlpatterns=[
url(“article/([0-9]+)/”,ArticleDetailView.as_view(),name=“article detail”),
#路径(“article//”,articletailview.as_view(),name=“article detail”),#替换为路径而不是url
url(“”,HomeView.as_view(),name='home')
]
path("article/<int:article>/", ArticleDetailView.as_view(), name="article-detail")
urlpatterns = [
    url("article/([0-9]+)/", ArticleDetailView.as_view(), name="article-detail"),
    # path("article/<int:article>/", ArticleDetailView.as_view(), name="article-detail"),  # alternative with path instead of url
    url('', HomeView.as_view(), name='home')
]