• Python


    新建一个项目 app02

    在 app02/ 下创建 urls.py:

    from django.conf.urls import url
    from app02 import views
    
    urlpatterns = [
        url(r'^blog/', views.test, name="blog"),
    ]
    

    app01/urls.py:

    from django.conf.urls import url
    from app01 import views
    
    urlpatterns = [
        url(r'^blog/', views.blog, name="blog"),
    ]
    

    这两个都有 blog/ 路径,且都名为 blog,访问的话就不知道该访问哪一个

    这时候需要用到命名空间

    在 templates 目录下创建 /books/blog.html 和 /news/blog.html

    app01/views.py:

    from django.shortcuts import render
    
    
    def test(request):
        return render(request, "test.html")
    
    
    def blog(request):
        return render(request, "news/blog.html")  # news 前不要加 /
    

    app02/views.py:

    from django.shortcuts import render
    
    
    def test(request):
        return render(request, "books/blog.html")  # books 前不要加 /
    

    mysite2/urls.py:

    from django.conf.urls import url, include
    from app01 import views
    from app01 import urls as app01_urls
    from app02 import urls as app02_urls
    
    urlpatterns = [
        url(r'^test/', views.test),
        url(r'^blog/', include(app01_urls, namespace="news")),
        url(r'^blog/', include(app02_urls, namespace="books")),
    ]
    

    test.html:

    <a href="{% url 'books:blog' %}">书籍</a>
    <a href="{% url 'news:blog' %}">新闻</a>
    

    这里用的是 namespace_name 格式来获取 url 路径

    访问:http://127.0.0.1:8000/test/

    点击“新闻”

    跳到了:http://127.0.0.1:8000/blog/blog/,返回的是 /news/blog.html 页面

  • 相关阅读:
    没事千万不要升级VirtualBox和Vagrant!
    以太坊开源项目
    以太坊合约第三方库
    Redis dbfilename
    SUSE Redis 开机启动
    SUSE Linux Enterprise Server 12 SP3 安装redis 6.0以上版本
    HTML基础练习
    html基础
    关于css 浮动的例子
    css 实现三角形
  • 原文地址:https://www.cnblogs.com/sch01ar/p/11285735.html
Copyright © 2020-2023  润新知