• 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)

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

  • 相关阅读:
    关于MySQL 最后一部安装阶段无法响应的问题
    为PHP 启用Mysql 的dll
    webcast终于改版了
    有意思的oracle转义字符
    Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议
    我被百度悲剧了
    阻止 http://3b3.org/c.js恶意SQL注入
    驱动研究日记-链表+后备链表
    C# 执行汇编类
    Tuning and Slimming JBossAS
  • 原文地址:https://www.cnblogs.com/wen-kang/p/9574206.html
Copyright © 2020-2023  润新知