博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2、django路由(urls)
阅读量:5121 次
发布时间:2019-06-13

本文共 1298 字,大约阅读时间需要 4 分钟。

1、路由的分发

  在django项目内容逐渐增多时,光一个全局路由可能导致看着不太直观。可以使用二级甚至三级等等

  

 

 

   如上图。mysite项目内有两个app。test_app和test_app2。首先。我们在mysite的全局路由中。只需要分配二级路由的指向。关键字include。

1 from django.urls import path, include, re_path2 from test_app import views3 4 urlpatterns = [5     re_path(r'^$', views.index, name='ShouYe'),6     path('test_app/', include('test_app.urls')),7     path('test_app2/', include('test_app2.urls'))8 9 ]

  #re_path可以使用正则匹配。用法与url一致。

  接下来则只要在二级路由中进行操作。

# coding:utf-8from django.contrib import adminfrom django.urls import pathfrom test_app import viewsurlpatterns = [    path('admin/', admin.site.urls),    path('login/', views.login),    path('extend_index/', views.extend_index),    path('extend_order/', views.extend_order),    path('extend_shopping_list/', views.extend_shopping_list)]

  如上。所有链接带test_app的都会从mysite的urls指向test_app目录下的urls。然后再指向对应的view。

  

2、路由的反向解析。

  场景:一个页面的地址要修改多次。正常情况下不仅要修改url的路径。而且还要在html中修改。(如表单提交,需要修改action) 

  反向解析核心:给url路径起别名。然后在html中使用别名。避免硬编码,解耦。

  操作步骤:

    1、给对应的url起别名

    2、然后针对html做对应优化。如表单的action,修改action的值为:"{% url '别名' %}"    

  然后以后我们无论怎么修改页面的路径,就只需要在url里面修改route参数(第一个参数),html中则不需要修改。因为如果html中有别名,在渲染的

  时候会通过html的别名找到url中对应的别名。拿到route。替换掉之前的"{% url '别名' %}",这样就能正常访问了。

    html如下:

    

 

 

     urls如下:

    

 

     

转载于:https://www.cnblogs.com/cbslock/p/11533280.html

你可能感兴趣的文章
C/C++内存泄漏及检测
查看>>
转HTMLTestRunner 生成测试报告
查看>>
hdu_2925_Musical Chairs_201311121643
查看>>
14_输出映射2_resultMap
查看>>
test11
查看>>
iPhone的解锁、越狱、激活、固件等等是什么意思,有什么分别?(转)
查看>>
CVS
查看>>
为什么匿名内部类参数必须为final类型
查看>>
Codeforces 629 A. Far Relative’s Birthday Cake
查看>>
【框架学习与探究之日志组件--Log4Net与NLog】
查看>>
操作execl
查看>>
UESTC_导弹拦截 2015 UESTC Training for Dynamic Programming<Problem N>
查看>>
工作用到的SQL语句
查看>>
POJ1002 487-3279
查看>>
sqlserver 生成脚本执行创建索引
查看>>
权益保护-产权保护:专利申请
查看>>
【计算机网络】第二章 网络应用(4)
查看>>
pyqt5-QPlainTextEdit普通文本
查看>>
短信验证码js
查看>>
hadoop学习第二天之伪分布模式安装(下)
查看>>