我是跟着网易云课堂的一个教学视频(https://study.163.com/course/courseMain.htm?courseId=1004369003)来进行Django项目练手的,它用的是Django1.11.5版本,而我用pip安装Django默认安装的是最新版的Django2.0。
毕竟我是新手,这时候我才发现,2017年12月2日,Django官方发布了2.0版本,成为多年来的第一次大版本提升,增加了许多新的特性。跟着视频来做,app下的urls.py的内容为:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index,name = 'index'),
path(r'^(?P<qustion_id>[0-9]+)/$',views.detail,name = 'detail'),
path(^(?P<qustion_id>[0-9]+)/results/$'',views.results,name = 'results'),
path('^(?P<qustion_id>[0-9]+)/vote/$',views.vote,name = 'vote'),
]
运行之后,却不能正确地获取地址,如下图:
上网查找后,知道原来是Django2.0的URL语法变了,但却找不到相关的语法说明和使用实例。这时我才想到了Django2.0官方文档,都说学习一项技术官方文档是很重要的资料,只是官方文档一般都是英文的,看起来一整版的英文字母,瞬间失去了学习动力,汗。。。一般懒得去看官方文档,也怕自己看了也不懂,这次不得不看了,毕竟Django2.0才刚发布出来,网上中文的参考资料很少。一看,官方文档果然是好东西(https://docs.djangoproject.com/en/2.0/intro/tutorial03/)!马上解决了我的问题,里面英文也不是很难懂。以后还是要多学点英语,多记点单词啊!代码修改为以后便可正常运行:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index,name = 'index'),
path('<int:question_id>',views.detail,name = 'detail'),
path('<int:question_id>/results/',views.results,name = 'results'),
path('<int:question_id>/vote/',views.vote,name = 'vote'),
]
希望对大家有点帮助。