python3——自定义一个类、object类

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

python3——⾃定义⼀个类、object类
1.如何创建⼀个类?
⾃定义⼀个类:()
__init__(self):
self代表类的实例,⽽⾮类
类的⽅法:在类的内部,使⽤ def 关键字来定义⼀个⽅法,与⼀般函数定义不同,类⽅法必须包含参数self, 且为第⼀个参数,self 代表的是类的实例。

#私有的东西外部不能调⽤
举例:
ORM中对于raw-queryset的分页是不能⽤分页器的,所以我们⾃建⼀个封装sql的分页类,调⽤即可# 1.获取数据库连接
from django.db import connection
class SqlPaginator(object): #python3可以不写,默认继承
#实现sql分页类:
def__init__(self, sql, params, page_size):
super().__init__()
self.sql = sql #要查询的sql
self.params = params #sql查询时候传递的参数
self.page_size = page_size #每页多少条数据
def page(self, now_page):
"""
获取当前页:
:param now_page: 页码
"""
offset = (now_page - 1) * self.page_size # 偏移量:每页的⾸位置
sql = self.sql + ' limit %s offset %s'#不要漏了sql的空格
# 使⽤cursor:
sql = ('select `id`, `username`, `nickname` from `weibo_user`'
'where `username` = %s'
)
# 2。

根据连接获取游标
cursor = connection.cursor()
# 3。

根据游标执⾏sql
rest = cursor.execute(sql, [self.page_size, offset])
# 4。

获取查询结果
rows = cursor.fetchall()
return rows
以及这个class怎么使⽤?
还是在ORM中,所以在视图中调⽤(此处省略url建⽴)
def page_p_sql2(request):
#使⽤sql分页类:
from utils.sqlpage import SqlPaginator
sql = ('select `id`, `username`, `nickname` from `weibo_user`')
sql_params = []
page_size = 10
p = SqlPaginator(sql, sql_params, page_size) #类的实例化
page_data = p.page(5)
for row in page_data:
print(row)
return HttpResponse('ok')
object类是什么?
manager是ORM中进⾏数据库查询操作的接⼝,每个model都必须拥有⼀个manager,object是⼀个默认的manager。

⾃定义的manager也要继承它。

()
在python3不写会默认调⽤:。

相关文档
最新文档