• [Django学习] Django基础(2)_URL配置


    一. 什么是urls.py

      urls.py是Django框架的url请求映射表

    二. 文件常规位置

      1. <Project文件夹> urls.py

      2.<App文件夹> urls.py

    三. 配置格式

    urlpatterns = patterns('视图前缀',  
        path(r'^正则表达式1/$', '视图函数1', name="url标识1"),  
        path(r'^正则表达式2/$', '视图函数2', name="url标识2"),  
    ) 
    

      1. '视图前缀':可以为空

      2. '^正则表达式1/$':url地址匹配

    ip地址 name <MySite> urls.py <Blog> urls.py
    http://localhost:8000/ 网站首页 path('',views.index)
    http://localhost:8000/Blog/ 博客列表 path('Blog/', included(Blog.urls)) path('',views.Show_Blog_List,name="Blog_List")
    http://localhost:8000/Blog/1 博客内容 path('<int:id>/',views.Show_Blog_Detail,name="Blog_Detail")

         

      3. '视图函数':为views.py中真是存在的函数

      4. name:一个视图函数可能对应多个url请求,name作为该url引用的唯一标示,必须全局唯一。例如在网页模板中可以写如下的URL 

    #(1)带参数的 
       <a href="{% url '<name>' arg1 arg2 arg3 ...%}></a> 
    #(2)不带参数的 
       <a href="{% url '<name>' %}"></a> 
    # (3)以tag来确定参数的 
       <a href="{% url '<name>' <tag_name>=xxxx%}"></a> 

    例如:path('<int:id>/', views.show_BlogArticle_Detail, name='show_BlogArticle_Detail')

    from django.urls import include, path
    from Blog import views
    
    urlpatterns = [
        path('', views.show_BlogArticle_List, name='show_BlogArticle_List'),
        # blog_list.html: <a href="{% url 'show_BlogArticle_Detail' blog.id %}">{{ blog.title }}</a>
        path('<int:id>/', views.show_BlogArticle_Detail, name='show_BlogArticle_Detail')
    ]
    
    def show_BlogArticle_Detail(request, id):
        # path('<int:id>/', views.show_BlogArticle_Detail, name='show_BlogArticle_Detail')
        blog_detail = get_object_or_404(BlogArticle, pk=id)
        # blog_detail.html: {{ blog_detail_html.title }}
        return render_to_response('blog_detail.html', {'blog_detail_html':blog_detail})

      (1)'<int:id>/':

          必须与views.show_BlogArticle_Detail(request, id)命名相同,

          前端显示值对应blog_list.html: <a href="{% url 'show_BlogArticle_Detail' blog.id %}">{{ blog.title }}</a>

          后端获取值对应views文件中show_BlogArticle_Detail(request, id)

      (2)views.show_BlogArticle_Detail:

          对应views.py中的函数show_BlogArticle_Detail(request, id)

      (3)name='show_BlogArticle_Detail'

          对应blog_list.html: <a href="{% url 'show_BlogArticle_Detail' blog.id %}">{{ blog.title }}</a>

    四. url如何工作

      客户端(浏览器url请求) --> 服务器 --> <Project文件夹> urls.py --> <App文件夹> urls.py --> <App文件夹> views.py --> 客户端(浏览器url请求)


    注明:学习资料来自“再敲一行代码的个人空间”以及“杨仕航的博客”

  • 相关阅读:
    城市的划入划出效果
    文本溢出省略解决笔记css
    长串英文数字强制折行解决办法css
    Poj 2352 Star
    树状数组(Binary Indexed Trees,二分索引树)
    二叉树的层次遍历
    Uva 107 The Cat in the Hat
    Uva 10336 Rank the Languages
    Uva 536 Tree Recovery
    Uva10701 Pre, in and post
  • 原文地址:https://www.cnblogs.com/AngryZe/p/9013044.html
Copyright © 2020-2023  润新知