Django的多层路由


如果项目中只使用到了一个APP应用,完全可以避免使用多层路由,多层路由在项目里涉及到2个或多个APP时使用

所谓路由,简单来说,就是给项目路径分流。

比如有一个项目 webnet,下面使用到了两个应用程序 stu_sys 和 tea_sys,需要区分访问时

可以在各自的APP根目录新建urls文件夹,将自己下面的对应关系写入:

1 from django.conf.urls import url 2 from tea_sys import views 3 
4 urlpatterns=[ 5 
6 
7 url(r'^show/', views.openone), 8 
9 ]

同时导入各自对应的views文件比如views文件下基本配置:

1 from django.shortcuts import HttpResponse,render,redirect 2 
3 def openone(request): 4     return render(request,'show.html')

最后再将各自的urls文件导入到wennet项目下的urls文件 并注册

1 from stu_sys import urls as stu_urls 2 from tea_sys import urls as tea_urls 3 
4 urlpatterns = [ 5   
6     url(r'^stu_sys/',include(stu_urls)), 7     url(r'^tea_sys/',include(tea_urls)), 8 
9 ]

 因为都是urls文件,会重名,所以可以用as给它们各自命名,这样就完成了二级路由

下次在访问项目时前面则需要加入各自的APP名称了,   比如     http://127.0.0.1:8000/tea_sys/show/

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

url的反向解析:通过给urls文件里面的对应关系起一个别名,放到HTML页面里,它会自动解析整个项目下名字匹配的值对应的路径 ,从而取到正确的路径,

就算是对应关系的名字被更改了也不会影响

比如:

1 url(r'^mc/', views.openone,name='see'),

按照see去整个项目里检索:

1 <a href="{% url 'see' %}">点我</a>

要注意的是:{% url 'see' %} 会对整个项目进行检索,所以前面不要添加任何路径,否则可能会出错

另外一种,也可以在视图里实现反向解析,需要在视图里导入reverse模块

1 from django.urls import reverse

然后在views的函数里去调用reverse去检索

1 rec=reverse('see')

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 auto_now_add=True 会在创建数据库时,把当前时间添加到数据库

auto_now=True 会在每次更新记录时更新数据  用作日志记录时间方便

时间间隔的处理:

会用到datetime模块

1 import datetime 2 
3 now=datetime.datetime.now() 4 d=datetime.timedelta(days=7) 5 long=now+d 6 print(now,long)

输出的是七天之后的当前时间


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM