zoukankan      html  css  js  c++  java
  • Django路由控制

     一:总体配置

    开始时在项目下面创建一个static的文件夹,静态配置,打开settings ,输入
    
      STATICFILES_DIRS=[
    
        os.path.join(BASE_DIR,'static')
    
        ]

     

    二:djano中的路由的作用

    路由就是路径跟我视图函数的映射关系

    URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码对应执行

    from django.urls import path
    
    urlpatterns = [
        path('articles', views.special),
    ]
    articles这个路由对应着视图函数中special这个方法,浏览器输入这个链接,就会响应到special这个函数来执行

    三: 简单的路由配置

    from django.conf.urls import url
    
    urlpatterns = [
         url(正则表达式, views视图函数,参数,别名),
    ]
    
    
    1 正则表达式:一个正则表达式字符串
    2 views视图函数:一个可调用对象,通常为一个视图函数或一个指定
    3 视图函数路径的字符串
    4 参数:可选的要传递给视图函数的默认参数(字典形式)
    5 别名:一个可选的name参数
    from django.urls import path,re_path
    
    from app01 import views
    
    urlpatterns = [
        re_path(r'^articles/2003/$', views.special_case_2003), 
        re_path(r'^articles/([0-9]{4})/$', views.year_archive),
        re_path(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
        re_path(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
    ]
    
    注意:
    
    1 若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。
    2 不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。
    3 每个正则表达式前面的'r' 是可选的但是建议加上。它告诉Python 这个字符串是“原始的” —— 字符串中任何字符都不应该转义
    4 urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续
    1 简单配置
        -第一个参数是正则表达式(如果要精准匹配:'^publish/$')
        -第二个参数是视图函数(不要加括号,)
        -url(r`'^admin',admin.sit.urls),
    
    2 无名分组
        -分组之后,会把分组出来的数据,当参数,传到视图函数,所以,视图函数需要定义
        -url(r`^publish/[0-9]{4}/[0-9]/{2}/$',views.publish)
      -def publish(request,*args):视图函数可以这样接收


    3 有名分组
      -按关键字传参
      -有名分组之后,会把分组出来的数据,当关键字参数,传到视图函数,所以,视图函数需要定义形    参,形参名字要跟分组的名字对应,与顺序无关
      -url(r'^publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$', views.pub    lish),
      -def publish(request, mounth,year):
       *****有名分组和无名分组,不要混用

     
    路由分发



    反向解析

     实现在空白页或在路有中找不到的时候的解决办法

  • 相关阅读:
    自己在安装centos 系统时, 是使用英文安装 成功,现在系统语言为英语,如何设置为中文?
    【转】HTML5的语音输入 渐进使用HTML5语言识别, so easy!
    基于layer简单的弹层封装
    条码扫描仪前端驱动
    JavaScript 生成Guid函数
    数据库连接字符串
    IDatabaseInitializer<TContext>接口研究
    async与await线程分配研究
    AsyncLocal<T>与ThreadLocal<T>区别研究
    entity framework core 2.0 & sqlite 配置教程
  • 原文地址:https://www.cnblogs.com/ouyang99-/p/9925108.html
Copyright © 2011-2022 走看看