zoukankan      html  css  js  c++  java
  • Django url路由分配

    在项目文件中,urls.py文件目的是匹配用户请求的url来执行对应的函数,格式如下:

    urlpatterns = [
        url('admin/', admin.site.urls),
        url('^index/$', views.index,), 
        url('^news/$', views.news),
        url('^download/$', views.download),
    ]

    一般的分配只需要两个参数,路径和对应执行的函数,其他两个参数可以不加。

    url()的四个参数

    第一个参数:

    路径字符串,使用正则匹配,常见于分页和文章页面。例:匹配4个数字   url(r'^index/[0-9]{4}/$', views.index)   当给匹配项添加()后url(r'^index/([0-9]{4})/$', views.index) ,会将该匹配项当做参数传到views对应函数中,应为def index(req, num):(参数名无限制,多个参数时按顺序传参)。也可以设置为有名参数,例:url(r'^index/(?P<name>[0-9]{4})/$', views.index)  这样的话,views函数里边的形参只能是制定的名字 def index(req, name):。

    第二个参数:

    匹配到之后需要执行的函数,固定格式。

    第三个参数:

    用处不大,详见http://www.cnblogs.com/yuanchenqi/articles/6083427.html

    第四个参数:

    别名。顾名思义,在前端使用form表单验证时,需要两个参数,action和method,其中action是表单数据提交到的路径是哪里,一般情况下action="/index/",但是此情况有弊端,缺少解耦,后端修改后前端也需要修改,所以别名用处就在于此。固定格式为:name="home",前端格式为:action={% url "home" %}。如果action="",默认将POST提交的数据给当前路径。

     app路由应用

    项目较大时,可能有许多路由映射,不符合解耦规范,此时,在每个app中创建urls.py,在全局urls.py 配置一下即可,如下:

    项目urls.py
    
    from django.contrib import adminfrom django.conf.urls import url
    from django.urls import include
    
    urlpatterns = [
        url('admin/', admin.site.urls),
        url('^blog/', include('mysite.urls')), 
    ]
    app下的urls
    
    from mysite import views
    from django.conf.urls import url
    
    urlpatterns = [
        url(r'news/$', views.index, name="home"),  
    ]

    本文参见:http://www.cnblogs.com/yuanchenqi/articles/6083427.html 

  • 相关阅读:
    关于字符编码,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…)
    Python基础一
    windows环境下 安装python2和python3
    Python数据类型及常用操作
    Python流程控制
    Python用户交互以及数据类型
    Python介绍以及Python环境搭建
    multiprocessor(下)
    multiprocessor(中)
    multiprocess(上)
  • 原文地址:https://www.cnblogs.com/linpei/p/10751477.html
Copyright © 2011-2022 走看看