• django 配置URLconf和获取值


    django中正确配置url匹配找到视图:

    1 在项目下的settings.py中ROOT_URLCONF = "项目名.urls“

    表示 前台发来请求会先去项目下的test3/urls.py文件进行正则匹配找到应该执行的视图函数。

     

     

    2 在test3/urls.py 文件中进行配置 urlpatterns

    发来的请求会进入urlpatters列表顺次匹配正则表达式,匹配成功的进入url()的第二个参数指定的去向

    发来请求如果是ip:端口/aaa/bbb/?a=23  类似这样的格式,到这里匹配的时候会被django拆分剩下aaa/bbb/来匹配

    第一个include(admin.site.urls) 表示django的后台数据库管理页面

    第一个之后,时候我们自己开发的业务中的匹配。

    第二个是 发来请求如果是 127.0.0.1:8000/demo/xxx/xxx/   到这里会剩下demo/xxx/xxx/来匹配,会和第二项匹配成功

      匹配成功后会删去匹配成功的部分 剩下xxx/xxx 去url的第二个参数include("demo1.ulrs") 去匹配,

      指的是去demo1应用模块下的urls.py继续正则匹配

    第三个是指 任何匹配到这里的都能成功,然后转向booktest应用下的urls.py继续正则匹配

     

    3 booktest引用下的urls.py文件设置匹配:

    从上一部项目的urls.py匹配后 跳转到应用的urls.py当中,进入urlpatters依次匹配

    到这里,与正则匹配成功的会去执行第二个参数指定的函数:

      如果剩下的字符串是index/ 则会 去views.py当中寻找index函数

      如果剩下的是add/ 则会去views.py中寻找add 函数并执行

     

    4 views.py中视图函数

    在views.py中,定义函数名称要与匹配成功的结果相一致。

    匹配过来的请求会执行这个函数,完成一些业务逻辑,返回response。

    发来浏览器的请求就会接收到这个response

     

     

     

    获取值:

    通过url匹配的方式,有两种方式给views视图函数传递参数:位置参数、关键字参数

     

    1 位置参数:

    直接使用小括号给正则表达式分组,通过位置参数传递给视图。

    1)为了提取参数,修改上面的正则表达式如下:

    url(r'^delete(d+)/$',views.show_arg),

    之后在views.py文件中的show_arg函数设置参数去接收正则的分组

    def show_arg(request,id):
        return HttpResponse('show arg %s'%id)

     

     

     

    2 关键字参数:

    在正则表达式部分为组命名。

    1)修改正则表达式如下:

      其中?P部分表示为这个参数定义的名称为id,可以是其它名称,起名做到见名知意

    url(r'^delete(?P<id1>d+)/$',views.show_arg),

    2)修改视图show_arg如下:

      注意:视图show_arg此时必须要有一个参数名为id1,否则报错。

    def show_arg(request,id1):
        return HttpResponse('show %s'%id1)

     

  • 相关阅读:
    数学 之 hdu 4722
    DP + math 之 Codeforces 126D
    计算几何 之 hdu 1077 poj 1981 O(n^2logn)
    计算几何 之 hdu 1077 poj 1981 O(n^3)
    字典树 之 hdu 1800
    字典树 之 poj 1056
    字典树 之 hdu 4099
    字典树 之 hdu 1247
    解决java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
    显示Mac壁纸所在路径以及接下来的事情你懂得
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/7525257.html
Copyright © 2020-2023  润新知