96SEO 2026-02-19 12:39 31
url的regex参数即第一个参数为正则表达式view参数通常为视图函数用来处理业务逻辑kwargs:接收传递给视图函数的参数name为regex参数地址的别名在地址过长时可用别名反向解析

admin.site.urls),url(r^index$,views.index)
正则表达式不需要添加一个前导的反斜杠因为每个URL都有。
例如应该是^index而不是
是可选的但是建议加上如果我们想匹配的路径就只是index/,那么正则表达式应该有开始符与结束符,
^index/$。
这样逻辑才算严谨若正则为rindex/在浏览器输入http://127.0.0.1:8001/index/Django会拿着路径部分index/去路由表中自上而下匹配正则表达式一旦匹配成功则立即执行其后的视图函数不会继续往下匹配此处匹配成功的正则表达式是
r^index/$。
无论是否书写最后的/都可以匹配成功是因为配置中APPEND_SLASH默认为True且并不会出现在配置文件中若想精确匹配最后的/则应该去settings文件中将APPEND_SLASH设置为False。
http://127.0.0.1:8000/test/?a1b2get请求的第二种方式
http://127.0.0.1:8000/test/123/11
无名分组实际上是re的分组写法即把正则中小括号里的匹配到的内容以位置参数的形式传递给视图函数如下
下述正则表达式会匹配url地址的路径部分为:article/数字/匹配成功的分组部分会以位置参数的形式传给视图函数有几个分组就传几个位置参数url(r^article/(\d)/$,views.article),
article(request,article_id):return
在浏览器输入http://127.0.0.1:8001/article/3/
当我们对分组命名后就会按照keyvalue的关键字参数形式为视图函数传参示例如下
该正则会匹配url地址的路径部分为:article/数字/匹配成功的分组部分会以关键字参数article_id匹配成功的数字的形式传给视图函数有几个有名分组就会传几个关键字参数需要强调一点是视图函数得到的值均为字符串类型url(r^article/(?Particle_id\d)/$,views.article),
article(request,article_id):return
在浏览器输入http://127.0.0.1:8001/article/3/
的文章内容...普通分组和命名分组都是为了获取路径中的参数并传递给视图函数区别在于普通分组是以位置参数的形式传递命名分组是以关键字参数的形式传递。
但请注意有名分组和无名分组不要同时使用。
在Django2以上的版本中默认的路由通过path精准匹配来识别避免了正则可能出现的一些匹配的问题。
admin.site.urls),path(,views.show_user_info),path(show/,
views.show_user_info),path(del/,
views.del_user_info),path(update/,
views.update_user_info),path(insert/,
[re_path(rusers/(?xxid\w-\d)/,views.users),
]Django2版本的re_path的用法同Django1的url完全相同不做过多描述。
当功能较多时都写在一个urls文件中显然并不合适可以使用路由分发将功能拆分带不同的app中。
include(apps.api.urls)),path(web/,
api/auth/path(auth/,views.auth),#
api/login/path(login/,views.login)
str,匹配除了路径分隔符/之外的非空字符串这是默认的形式int,匹配正整数包含0。
slug,匹配字母、数字以及横杠、下划线组成的字符串。
uuid,匹配格式化的uuid如
075194d3-6885-417e-a8a8-6c931e272f00。
path,匹配任何非空字符串包含了路径分隔符/不能用
int:year相当于一个有名分组其中int是django提供的转换器相当于正则表达式专门用于匹配数字类型而year则是我们为有名分组命的名并且int会将匹配成功的结果转换成整型后按照格式year整型值传给函数year_archive但是当本身条件较为复杂时五种转换器可能并不能实现要求。
针对这一系列复杂的需要我们可以定义自己的转化器。
转化器是一个类或接口它的要求有三点
所匹配到的字符串返回具体的Python变量值以供Django传递到对应的视图函数中。
相反value是一个具体的Python变量值返回其字符串通常用于url反向引用。
匹配的regex是两个数字返回的结果也必须是两个数字在urls.py中使用register_converter
MonthConverterregister_converter(MonthConverter,mon)from
[path(articles/int:year/mon:month/slug:o***r/,
nameaaa),]views.py中的视图函数article_detail
article_detail(request,year,month,o***r):print(year,type(year))print(month,type(month))print(o***r,type(o***r))print(reverse(aaa,args(1988,12,hello)))
反向解析结果/articles/1988/12/hello/return
1、在浏览器输入http://127.0.0.1:8000/articles/2009/12/hello/path会成功匹配出参数year2009,month12,o***rhello传递给函数article_detail
2、在浏览器输入http://127.0.0.1:8000/articles/2009/123/hello/path会匹配失败因为我们自定义的转换器mon只匹配两位数字而对应位置的123超过了2位3.2
url(r^v1/v2/v3/home/(\d)/(\d)/$,
url(r^v1/v2/v3/home/(?Pyear\d)/(?Pmon\d)/$,
避免name重复可将重名name分别放入不同的namespace
include(apps.api.urls,namespacex1)),path(web/,
include(apps.web.urls,namespacex2)),
views.login,namelogin),path(auth/,
views.home,namehome),path(order/,
views.order,nameorder),path(auth/,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback