最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 一文读懂Django路由规则

    正文概述    2020-04-26   282

    一文读懂Django路由规则

    什么是路由

    对一个给定的URL进行定义,转换,传参,命名之后,找到相应处理函数的过程,也就是关联URL和处理函数的过程。

    Django的路由配置

    在settings.py文件中ROOT_URLCONF变量指定了全局路由文件名称。也就是工程的入口路由文件。

    ROOT_URLCONF = "<工程名称>.urls"

    在urls.py文件中使用urlpatterns变量表示路由,该变量是列表类型,元素由path()或re_path()组成。

    path()处理字符串路由。re_path()处理正则表达式路由。

    Django的路由流程

    1.查找全局路由文件中的urlpatterns变量

    2.根据先后顺序,对URL逐一匹配urlpatterns中的元素。

    3.找到第一个匹配的元素后,将停止查找,并根据匹配结果执行处理函数。

    4.如果没有找到匹配,或者出现异常。Django将进行错误处理。

    注:Django路由不考虑HTTP请求方式,只根据URL进行路由,只要URL相同,无论是POST或者GET都会指向同一个处理函数。但是可以通过decorators在处理函数前进行基本判断。

    from django.views.decorators.http import require_http_methods
     
    @require_http_methods(["GET", "POST"])
    def index(request):
        pass

    相关推荐:《Python视频教程》

    路由函数path()

    函数path()有四个参数;两个必须参数:route和view;两个可选参数:kwargs和name。

    route:URL匹配模式,当Django相应一个请求时,会从urlpatterns的第一项开始根据route匹配元素。

    view:处理函数的名称,当Django找到一个匹配模式后,会调用这个处理函数,并传入一个HttpRequest对象。

    kwargs:任意个关键字参数可以作为一个字典传递给目标处理函数。

    name:给URL模式的命名。

    route的三种格式

    1. 精确字符串格式,类似于:articles/2003/

    一个精确的URL匹配一个处理函数,适合于对静态URL的响应。

    2. Django的转换格式,类似于:articles/<int:year>/

    一个URL模板,匹配URL的同时,在其中获取一批变量作为参数传递给处理函数。

    3. 正则表达式格式。类似于:articles/?P<year>[0-9]{4}/

    借助正则表达式的丰富语法,可以表达一类URL(不是一个),可以通过<>提取变量作为处理函数的参数。  

    view的两种类型

    1.处理函数。

    2.include()函数。包含其他路由信息,分段路径组合形成总路径。


    起源地下载网 » 一文读懂Django路由规则

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元