Django 函数调用路线图
2017-12-08 19:29
323 查看
QuerySet的三个层次:
第一个:显示所有的objects:
class ExampleView(ListView):
model = Example
第二个:
显示满足查询条件的子集:
class ExampleView(ListView):
queryset = Example.objects.filter(fieldname='something')
或者用get_queryset()
class ExampleView(ListView):
def get_queryset(self):
return Example.objects.filter(...)
第三个:get_object()
get_object()返回单个的object。如果有了queryset,则将其作为object数据源,否则,就会调用get_queryset()获取数据源。get_object()首先搜寻视图中的pk_url_kwarg参数,如果找到,就根据其进行主键查找(primary-key based)。如果没有pk_url_kwarg,就搜寻slug_url_kwarg参数,然后针对slug_field进行slug查询。如果query_pk_and_slug为True,则进行主键和slug的组合查询。
视图类中方法的调用顺序
dispatch()永远是第一个被调用的方法(除了__init__())它接收一个request参数以及关键词参数(*args, **kwargs),并且触发相应的get()或者post()方法。ListView:
Method Flowchart:
dispatch()
http_method_not_allowed()
get_template_names()
get_queryset()
get_context_object_name()
get_context_data()
get()
render_to_response()
DetailView:
Method Flowchart
dispatch()
http_method_not_allowed()
get_template_names()
get_slug_field()
get_queryset()
get_object()
get_context_object_name()
get_context_data()
get()
render_to_response()
Base Views:
View:
dispatch() http_method_not_allowed() options()
TemplateView:
dispatch() http_method_not_allowed() get_context_data()
相关文章推荐
- Django class-based view的QuerySet三个层次以及函数调用路线图
- vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess
- 学习笔记-函数的四种调用模式
- JAVA 通过 JNA 调用 C程序 dll 函数传入中文参数问题
- 函数调用约定
- JavaScript中具名函数的多种调用方式总结
- 函数直接调用与反射性能对比
- 函数的调用过程(函数调用栈帧的创建)
- JS 四种函数调用模式
- Lucene生成查询的函数调用关系
- 直接调用类成员函数地址
- Qt 鼠标样式特效探索样例(一)——利用时间器调用QWidget.move()函数
- 计算机程序的思维逻辑- 函数调用的基本原理
- 如何在setTimeout函数执行完之后调用回调函数
- 单元测试时如何设定私有变量、调用私有成员函数
- ASP.NET后台调用前台JS函数的三种常见方法
- 进程,线程,函数调用
- 唯快不破:UDP套接字调用connect()函数
- 函数指针调用类的成员函数
- 关于调用js函数失败问题及解决