目录
path方法
re_path()
reverse方法
render方法
render_to_response方法
get_object_or_404方法
get_list_or_404方法
path方法
path
(route, view, kwargs=None, name=None)
- route参数是一个字符串,表示URL,包含一个 URL 模式。这个字符串来捕获 URL 的一部分,并将其作为关键字参数发送给视图。
view
参数是一个视图函数,用于基于类的视图。kwargs
参数允许你向视图函数或方法传递附加参数- name参数则可以为这个URL起一个名字
route参数和view参数是必填的,作用是捕捉符合route参数中的URL,如果符合,这叫由view参数中的视图函数处理。
path方法定义于django/urls/conf.py文件中,在使用之前需要先导入Django.urls文件才能使用
re_path()与
path方法类似,不过route参数可以是一个正则表达式进行匹配。就不过多写了。
path方法定义于django/urls/conf.py文件中,在使用之前需要先导入Django.urls文件才能使用
reverse方法由于URL可能随着业务调整发生变化,因此将URL硬编码到代码中并不友好。Django为了解决这个问题,提供了URL反向解析的方法,通过给URL模式命名即可反向解析得到完整的URL。
reverse
(viewname, urlconf=None, args=None, kwargs=None, current_app=None)
- viewname:必填参数,它可以是URL模式的名字,即name所指定的名称;也可以是可调用的视图对象,
- urlconf:这个属性用于决定当前的反向解析使用哪个URLconf模块,默认是根URLconf。
- args:它用于传递参数,可以是元组或者列表,顺序填充URL中的位置参数。
- kwargs:它与args一样,也用于传递参数;但它是字典类型的,使用关键字指定参数和数值。需要注意,args与kwargs不可以同时出现。
- current_app:它指示当前执行的视图所属的应用程序。
path方法定义于django/urls/conf.py文件中,在使用之前需要先导入Django.urls文件才能使用
render方法这个方法将给定的模板和上下文字典组合,渲染返回一个HttpResponse对象。
render
(request、template_name、context=无、content_type=无、status=无、using=无)
- request:HttpRequest对象,即视图函数的第一个参数。一般都会request
- template_name:可以是字符串或字符串列表。字符串代表模板的完整路径;如果是列表,则按顺序找到第一个存在的模板。
- context:默认是一个空字典,可以通过传递它渲染模板。
- content_type:生成文档的MIME类型,默认为DEFAULT_CONTENT_TYPE设定的值。
- status:响应状态码,默认为200。
- using:用于指定加载模板的模板引擎。
这个方法的功能与render是一样的,根据一个给定的上下文字典渲染模板并返回HttpResponse。
render
(request、template_name、context=无、content_type=无、status=无、using=无)
与render方法的区别是不需要传递request参数,其他都是相同的。由于没有传递request,因此其在模板中的使用会受到一定的限制,如不能直接通过request对象获取它的相关属性。所以,如果需要在模板中使用request,应该使用render,而不是render_to_response。另外,Django在源码中给出了提示,这个方法可能在将来被废弃,所以,在应用开发中首先考虑使用render方法。
get_object_or_404方法这个方法通过Model对象的get方法获取实例对象,但是当实例不存在的时候,它会捕获DoesNotExist异常,并返回404响应。
get_object_or_404
(klass, *args, **kwargs)
- klass:从中获取对象的modle类,Managr,或QuerySet实例。
- *args和**kwargs:查询参数,应采用 和 接受的格式。
get()
filter()
用来获取Model实例对象的列表,当获取的结果为空时,返回404响应。
接受的参数与get_object_or_404是一样的,只是在做匹配时使用filter方法而不是get方法。
get_object_or_404和get_list_or_404常常用于不考虑“兼容”的场景中,即匹配不到实例对象就返回找不到资源(404)。这两个方法会比自己去查询校验并返回404响应要简单很多,所以,如果需要这样的场景,就首先考虑使用它们。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)