zoukankan      html  css  js  c++  java
  • 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 分发的作用。

  • 相关阅读:
    Day10 作业
    深浅拷贝
    列表,字符串,字典,元组,集合内置方法
    Notification操作大全
    Recyclerview 顶部悬停 stick
    扩展AutoCompleteTextView让其默认显示一组列表。setThreshold
    获得了Root权限后Read-only file system
    Called attach on a child which is not detached
    CollapsingToolbarLayout Toolbar的title覆盖问题
    【转】Material Design 折叠效果 Toolbar CollapsingToolbarLayout AppBarLayout
  • 原文地址:https://www.cnblogs.com/gaizhongfeng/p/8758551.html
Copyright © 2011-2022 走看看