Django 函数调用路线图

本文介绍了Django框架中QuerySet的三个层次:显示所有对象、显示满足特定条件的对象子集及获取单个对象,并详细解释了ListView与DetailView视图类中各方法的调用流程。

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:

  1. dispatch()
  2. http_method_not_allowed()
  3. get_template_names()
  4. get_queryset()
  5. get_context_object_name()
  6. get_context_data()
  7. get()
  8. render_to_response() 

DetailView:

Method Flowchart
  1. dispatch()
  2. http_method_not_allowed()
  3. get_template_names()
  4. get_slug_field()
  5. get_queryset()
  6. get_object()
  7. get_context_object_name()
  8. get_context_data()
  9. get()
  10. render_to_response()

Base Views:


View:

dispatch()
http_method_not_allowed()
options()

TemplateView:

dispatch()
http_method_not_allowed()
get_context_data()
Python学习路线图可以分为以下几个阶段: 1. 入门阶段: - 学习Python的基本语法和数据类型,了解变量、运算符、条件语句、循环语句等基本概念。 - 掌握Python的基本输入输出操作,学会使用print函数和input函数。 - 学习使用Python的内置函数,如len、range、type等。 2. 数据结构与算法: - 学习Python中常用的数据结构,如列表、元组、字典、集合等,并掌握它们的基本操作。 - 理解并学习常见的算法,如排序算法、查找算法等,并用Python实现。 3. 函数与模块: - 学习函数的定义和调用,了解函数的参数传递方式。 - 掌握函数的返回值和作用域,学会使用局部变量和全局变量。 - 学习模块的概念和使用方法,了解如何导入和使用标准库和第三方库。 4. 面向对象编程: - 理解面向对象编程的基本概念,如类、对象、继承、封装、多态等。 - 学习如何定义类和创建对象,掌握类的属性和方法的使用。 - 理解继承和多态的概念,并学会使用它们来设计和实现程序。 5. 文件操作与异常处理: - 学习如何读写文件,了解文件的打开、关闭和读写操作。 - 掌握异常处理的方法,学会使用try-except语句来捕获和处理异常。 6. Web开发与数据库: - 学习使用Python进行Web开发,了解常用的Web框架(如Django、Flask)和前端技术(如HTML、CSS、JavaScript)。 - 掌握使用Python操作数据库的方法,学会使用SQL语句进行数据库的增删改查操作。 7. 数据分析与机器学习: - 学习使用Python进行数据分析和处理,掌握常用的数据分析库(如NumPy、Pandas)和数据可视化库(如Matplotlib、Seaborn)。 - 了解机器学习的基本概念和算法,学会使用Python中的机器学习库(如Scikit-learn)进行模型训练和预测。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值