最近学习python编程从入门到实践这本书,因此在学习到第18章关于Django的章节产生的问题困扰的时间是目前最久的。
如下图所示:
经过搜索,终于发现了问题所在:learning_logs\urls.py文件中,缺失了topics,应检查learning_logs\urls.py中
# Show all topics.
url(r'^topics/$', views.topics, name='topics'),
三个topics拼写是否正确
而且书中所使用的的Django的版本较旧,目前的Django中有所改变。
可以用path替换url改写,解决如:
1 页面正常显示,但是topics/1/ 显示不正常;点击chess,链接为topics/(?p/等
2 cmd命令窗口显示 Django 2.0 path error ?: (2_0.W001) has a route that contains ‘(?P<’, begins with a ‘^’, or ends with a ‘$’ 警告
解决方法:
将learning_logs/urls.py书中代码
from django.conf.urls import url
from . import views
urlpatterns = [
# Home page.
url(r'^$', views.index, name='index'),
# Show all topics.
url(r'^topics/$', views.topics, name='topics'),
# Detail page for a single topic.
url(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),
]
改为:
from django.urls import path
from . import views
app_name = 'learning_logs' # 书上没有
urlpatterns = [
# 主页
path('',views.index, name='index'),
# 显示所有主题
path('topics/', views.topics, name='topics'),
# 特定主题的详细页面
path("topics/<int:topic_id>/", views.topic, name='topic'),
]
即可解决。
感谢
EndymiONE的Python编程-从入门到实践 Chapter18 第18章Django入门 映射URL 学习时的坑