【Django入门】——从url捕获并传递参数给视图函数

1. 位置参数捕获以及传递

早在文章【Django入门】——MVT模式综合演示案例中,对于下列# 1处代码:

from django.conf.urls import url
from booktest import views


# 进行URL配置,建立URL地址和视图之间的对应关系
urlpatterns = [
    # 通过url函数设置url路由配置项
    url(r'^books$', views.show_books),
    url(r'^books/(\d+)$', views.show_details)  # 1
]

show_details()是一个接收一个参数的视图函数,在正则r'^books/(\d+)$'中,通过分组(关于正则中的分组等概念,请见文章Python爬虫、后端,使用正则表达式,看这一篇就够了!)匹配出的值将会在调用视图函数时自动传递给后者作为参数。这就是所谓的位置参数捕获以及传递

2. 关键字参数捕获和传递

有时候,可能视图函数需要接受的参数很多,直接通过位置参数的捕获以及传递出错的几率较大,此时可以采用关键字参数捕获和传递,具体的演示我们基于【Django入门】——修改Django默认提供的错误页面搭建的演示环境。

首先,定义一个视图函数echo_arg()

def echo_arg(request, num):
    """原样返回从url中捕获的参数"""
    return HttpResponse(num)

其次,进行应用的url配置:

from django.conf.urls import url
from booktest import views


urlpatterns = [
    # 通过url函数设置url路由配置项
	......
    url(r'^echo_arg(?P<num>\d+)$', views.echo_arg)
]

最后,如果启动Django自带服务器并在浏览器地址栏输入http://127.0.0.1:8000/echo_arg520,则会在浏览器上看到520

猜你喜欢

转载自blog.csdn.net/weixin_37780776/article/details/107738776