zoukankan      html  css  js  c++  java
  • [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请求)


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

  • 相关阅读:
    【科创人独家】科界CTO林镇南:言必真,行必果,没有尽力而为,只有全力以赴
    【科创人+极客邦科技】百企贡献资源,携手抗击疫情
    【科创人新春篇】创投圈人脉王吴世春:肺炎,Long China,精益创业,回归听云…
    SAP QM 在Quality Notification里维护Internal Note
    地摊重现江湖,疫情带给我们的意外收获
    SAP QM Quality Notification的凭证流
    SAP QM 如何将一个附件挂在一个Quality Notification单据上?
    K项目轶事之被客户通报批评
    SAP MM VL34事务代码批量创建Inbound Delivery
    城市的房价稳定,就能不断吸引人才?
  • 原文地址:https://www.cnblogs.com/AngryZe/p/9013044.html
Copyright © 2011-2022 走看看