• 荣誉墙项目day26 django 项目路由配置


    项目路由配置文件包括:配置目录里的urls.py文件各个app目录里的urls.py文件

    1、include()——从项目主路由分配到各APP主路由

    from django.conf.urls import include,url

    urlpatterns = [

      url(r'^home_student', include('home_student.urls')),

    ]

    2、url的name属性——解耦

    (1)name属性定义:urls.py文件的urlpatterns中

    url(r'^add/(d+)/(d+)/$', calc_views.add2, name='add2'),

    (2)name属性在.py文件中的使用:

    python manage.py shell

    >>> from django.core.urlresolvers import reverse  # django 1.4.x - django 1.10.x

    >>> from django.urls import reverse  # django 1.10.x 新的,更加规范了
     #reserve函数用于从name获取url:reverse(url的name, args=(url所需的参数))
    >>> reverse('add2', args=(4,5))
    u'/add/4/5/'
    >>> reverse('add2', args=(444,555))
    u'/add/444/555/'
     
    (3)name属性在.html文件中替代url
    不带参数的:
    {% url 'name' %}
    带参数的:参数可以是变量名
    {% url 'name' 参数 %}
     
    例如:
    <a href="{% url 'add2' 4 5 %}">link</a>
     

    示例!!!比如用户收藏夹中收藏的URL是旧的,如何让以前的 /add/3/4/自动跳转到现在新的网址呢?

    要知道Django不会帮你做这个,这个需要自己来写一个跳转方法

    具体思路是,

    在 views.py 写一个跳转的函数

    from django.http import HttpResponseRedirect

    from django.core.urlresolvers import reverse  # django 1.4.x - django 1.10.x
    #  from django.urls import reverse  # new in django 1.10.x
     
    def old_add2_redirect(request, a, b):
        return HttpResponseRedirect(
            reverse('add2', args=(a, b))
        )
    然后将原来的url指向这个跳转函数,而跳转函数跳转到新url
     url(r'^add/(d+)/(d+)/$', calc_views.old_add2_redirect),
     url(r'^new_add/(d+)/(d+)/$', calc_views.add2, name='add2'),
     
     3、在html文件或者view文件中调用url的方法:
    项目主页为:
    <a href="./">首页</a>
     其他页面依此类推
    参考:http://code.ziqiangxuetang.com/django
  • 相关阅读:
    springboot 踩坑之表单验证
    爬虫学习研究
    selenium+chrome知识
    每天学一点linux命令
    Javascript禁止子元素继承父元素的事件
    sass编译css(转自阮一峰)
    php配置虚拟主机的配置步骤(hosts、httpd.conf、vhosts.conf)1.配置本地的dns文件2.配置apache的主配置文件3.配置Apache的虚拟主机
    修改原代码定制bootstrap
    网页在线进行标准验证
    浏览器兼容性判定写法格式(ie)
  • 原文地址:https://www.cnblogs.com/zealousness/p/7384321.html
Copyright © 2020-2023  润新知