• Django urls


    URL 配置就像Django所支撑网站的目录。它的本质就是URL模式 以及要为该URL模式调用的视图函数之间的映射表。
    以这种方式告诉Django , 对于指定URL 调用指定代码

    格式: 

    urlpatterns = [
        url(正则表达式, views视图函数,参数,别名),
    ]

    Django 2.0:

    from django.urls import path,re_path
    urlpatterns = [
        re_path(r'^userInfo/*',views.userInfo),
    ]

    正则表达式:一个正则表达式字符串
    views视图函数参数:一个可调用的对象,通常为一个视图函数
    参数:要传递给视图函数的默认参数(字典形式)
    别名:一个可选的name参数

    URL 向后台传值:

      URL:

        

    #把[0-9]{4} 用小括号括起来后台可以直接获取值
        re_path(r'^articles/([0-9]{4})/$',views.year_archive),

      后台:

      

    def year_archive(req,year):
    
        return HttpResponse("year:"+year)

    将值重命名后传递到后台:

      URL :

      

    #?P<year> 是将后边的结果命名为year,类似于 year= [0-9]{4}的结果 , 重命名之后,后端接收参数的名字要与重命名的名字相同
        re_path(r'^articles/(?P<year>[0-9]{4})/',views.year_archive2),

      后台:

      

    def year_archive2(req,year):
    
        return HttpResponse("year 2:"+year)

    将URL 进行重命名

      url:

        

    path("name/",views.name,name="xiaoxiao"),

      

    HTML 页面访问 这个url(action={% url "xiaoxiao" %}):

      

     <form action={% url "xiaoxiao" %} method="post">
            <input type="text" name="user">
            <input type="password" name="pwd">
            <input type="submit" value="submit"></input>
        </form>

    URL 映射分发:

    当一个网站过大的时候,会有多个url , 可以把url分发到指定的模块中去处理。比如51cto 有博客,视频 等模块,我们可以在博客中定义处理博客URL 的文件, 防止总的URL 文件过大以及URL 相互干扰。

    配置如下:

      总的URL 文件:

      

    from django.contrib import admin
    from django.urls import path,re_path
    from blog import  views
    from django.conf.urls import  url,include
    urlpatterns = [
        url(r'^blog/',include('blog.urls')),
    ]

    这段代码的意思是拦截以 “blog/”  开头的URL, 将这个URL 分配到 blog.urls   中。

      blog.urls 文件

    from django.contrib import admin
    from django.urls import path,re_path
    from blog import  views
    from django.conf.urls import  url,include
    urlpatterns = [
    
            url(r'^news/story',views.introduce),
            ]

    这段代码的意思是拦截/news/story 这样的url

    当请求路径为 http://127.0.0.1:8000/blog/news/story 的时候就会调用这个URL,达到了url 分发的作用。

  • 相关阅读:
    Tomcat生命周期管理与观察者模式
    利于ThreadLocal管理Hibernate Session
    Spring多数据源配置
    MySQL数据库性能优化之硬件瓶颈分析
    浅谈监听器与过滤器
    StringManager与单例模式
    ThreadLocal在spring框架中的作用
    spring中事件机制
    MySQL数据库性能优化之存储引擎选择
    Spring常用的Listener
  • 原文地址:https://www.cnblogs.com/gaizhongfeng/p/8758551.html
Copyright © 2020-2023  润新知