首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django学习路由(5)

Django学习路由(5)

作者头像
萌海无涯
发布2019-09-03 18:19:35
3860
发布2019-09-03 18:19:35
举报
文章被收录于专栏:萌海无涯萌海无涯

创建了应用后,运行项目发现还是老样子!一个发射的火箭!!

这怎么行!!!

今天来学下路由!

啥是路由??

路由有啥用??

又要做比喻了。。。

路由来说一般都是比喻打电话。。。

电话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

path() 函数

Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。

语法格式:

path(route, view, kwargs=None, name=None)
  • route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
  • view: 用于执行与正则表达式匹配的 URL 请求。
  • kwargs: 视图使用的字典类型的参数。
  • name: 用来反向获取 URL。

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/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萌海无涯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • path() 函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档