美文网首页
Django笔记13:urls的用法

Django笔记13:urls的用法

作者: _百草_ | 来源:发表于2021-12-08 10:43 被阅读0次

    1. url映射:

    1. 为什么会去urls.py文件中寻找映射呢?
      是因为在settings.py文件中配置了ROOT_URLCONFurls.py。所有django会去urls.py中寻找。
    2. urls.py中我们所有的映射,都应该放在urlpatterns这个变量中。
    3. 所有的映射不是随便写的,而是使用path函数或者是re_path函数进行包装的。

    2. 实例

    方式1:Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
    
    方式2:Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
    
    方式3:Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
    
    include实例
    # app下的urls.py
    #----------------------------------------------------
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('/record', views.record_name)
    ]
    
    # pro下的urls.py
    #----------------------------------------------------
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('record/', include('record.urls')),  # 转向record应用的urls.py
        path('blog/', include('blog.urls')),  # 转向blog应用的urls.py
    ]
    

    注:
    当访问的URL第一层为/record/xxxx时,为跳转到record应用下的urls.py文件下路由
    当访问的URL第一层为/blog/xxxx时,为跳转到blog应用下的urls.py文件下路由


    url传参数:

    1. 采用在url中使用变量的方式:
      在path的第一个参数中,使用<参数名>的方式可以传递参数。
      然后在视图函数中也要写一个参数,视图函数中的参数必须和url中的参数名称保持一致,不然就找不到这个参数。
      另外,url中可以传递多个参数。

    2. 采用查询字符串的方式:在url中,不需要单独的匹配查询字符串的部分。只需要在视图函数中使用request.GET.get('参数名称')的方式来获取。示例代码如下:

      def author_detail(request):
          author_id = request.GET['id']
          text = '作者的id是:%s' % author_id
          return HttpResponse(text)
      
      

      因为查询字符串使用的是GET请求,所以我们通过request.GET来获取参数。并且因为GET是一个类似于字典的数据类型,所有获取值跟字典的方式都是一样的。

    url参数的转换器:

    1. str:除了斜杠/以外所有的字符都是可以的。
    2. int:只有是一个或者多个的阿拉伯数字。
    3. path:所有的字符都是满足的。
    4. uuid:只有满足uuid.uuid4()这个函数返回的字符串的格式。
    5. slug:英文中的横杆或者英文字符或者阿拉伯数字或者下划线才满足。

    参考:

    1. django中url的参数用法笔记

    相关文章

      网友评论

          本文标题:Django笔记13:urls的用法

          本文链接:https://www.haomeiwen.com/subject/pratiltx.html