重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
10年积累的成都网站建设、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有兰溪免费网站建设让你可以放心的选择与我们合作。这篇文章主要介绍关于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
路由函数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/
一个URL模板,匹配URL的同时,在其中获取一批变量作为参数传递给处理函数。
3. 正则表达式格式。类似于:articles/?P
借助正则表达式的丰富语法,可以表达一类URL(不是一个),可以通过<>提取变量作为处理函数的参数。
view的两种类型
1.处理函数。
2.include()函数。包含其他路由信息,分段路径组合形成总路径。
以上是关于Django路由规则的详细分析的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!