创建了应用后,运行项目发现还是老样子!一个发射的火箭!!
这怎么行!!!
今天来学下路由!
啥是路由??
路由有啥用??
又要做比喻了。。。
路由来说一般都是比喻打电话。。。
电话A 打电话给 1001 需要用到中转设备来指路,走那条线路可以到达目的地。如果表中没有,则不管他!
维护这个线路的表就叫做路由表!
比如我们访问网页 http://mhwy.work 其实我们访问的这个域名的跟目录
访问 mhwy.work/Python 就是访问 Python这个目录,Django把访问对应的目录来建立一个表,我们访问某个路径,给我们返回对应的内容。如果访问的路径没有在路由表中,就会给我们返回个错误信息!
网站后端也有个表来维护。在我们的项目 mysite/urls.py 中。
这里需要注意,2.0之前用的是 url
from django.conf.urls import url
2.0之后新增了 path
from django.urls import path
Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。
语法格式:
path(route, view, kwargs=None, name=None)
Django2. 0 中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现 。
Django2. 0 中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现 。
from django.urls import include, re_path
urlpatterns = [
re_path(r'^index/$', views.index, name='index'),
re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
re_path(r'^weblog/', include('blog.urls')),
...]
上面的内容大概了解下!用到了会在来提及!
首先我们在 mysize/urls.py中添加内容
from django.contrib import admin
from django.urls import path, include # 添加 include
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/', include('polls.urls')), # 添加一条路由信息
]
函数 include() 允许引用其它 URLconfs。每当 Django 遇到 :func:~django.urls.include 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。我们设计 include() 的理念是使其可以即插即用。因为投票应用有它自己的 URLconf( polls/urls.py ),他们能够被放在 "/polls/" , "/fun_polls/" ,"/content/polls/",或者其他任何路径下,这个应用都能够正常工作。 了解一下
我们把接收的内容从主路由表接到我们自己建立的应用路由表。
现建立文件在 polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
这样我们就完成了应用路由设置!
嗯?你说 views.index 干嘛的??下篇再说!
还有就是 运行项目现在连火箭都看不到了。直接报错了!!!
赶紧救场!救场!
在 polls/views.py 中加入下面的内容:
from django.http import HttpResponse
def index(request):
return HttpResponse("你想看到什么?")
记得地址后面跟上 /polls/