如果项目中只使用到了一个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)

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