|
def | __init__ (self, config_obj=None, instance=None, log_conf=None, close_log=False, serializer=QuerySet, **kwargs) |
|
def | conversion (self) |
|
def | first (self) |
|
def | last (self) |
|
QuerySet | find_all (self, **kwargs) |
|
QuerySet | find_field (self, *args, **kwargs) |
|
def | find_one (self, sql, **kwargs) |
|
QuerySet | find_many (self, sql, **kwargs) |
|
QuerySet | find_sql (self, sql, **kwargs) |
|
def | update (self, key=None) |
|
def | remove (self, key=None) |
|
def | save (self, *args, **kwargs) |
|
def | create (self, pojo, **kwargs) |
|
def | copy (self, **kwargs) |
|
def | execute_sql (self, sql, params=None, mode=EX_MODEL.SELECT, **kwargs) |
|
def | foreign_key (self, cls, key_name, field_name=None, data=None, operation=None) |
|
- POJO类
- 继承该类表名此类为数据库的pojo类
- 需要配合:@Table(name, msg, **kwargs)使用
Definition at line 16 of file repository.py.
◆ __init__()
def aestate.work.repository.Repository.__init__ |
( |
|
self, |
|
|
|
config_obj = None , |
|
|
|
instance = None , |
|
|
|
log_conf = None , |
|
|
|
close_log = False , |
|
|
|
serializer = QuerySet , |
|
|
** |
kwargs |
|
) |
| |
通过继承此类将数据表实体化
实体化之后你可以使用像类似find_one()等操做
可以调用conversion()方法将其转化为ORM框架常用的样式
无需担心类型问题,无需担心datetime无法转换
使用方法:
#加入Table注解,并标注表名与描述,因考虑使用者后期优化问题,请务必填写MSG参数
@Table(name="demo_table", msg="demo message")
#继承Repository并得到相对应的半自动ORM操做
class TestClass(Repository):
# 初始化并super配置
def __init__(self,**kwargs):
super(DemoTable, self).__init__(config_obj=ConF(), log_conf={
'path': "/log/",
'save_flag': True
}, **kwargs)
初始化配置:
aestate.util.Config.config的配置类,详见:aestate.work.Config.MysqlConfig
Attributes:
以下的字段均可覆盖重写
config_obj:数据源配置类
log_conf:日志配置工具
log_obj:日志对象
close_log:是否关闭日志
serializer:序列化使用的类,默认使用aestate.work.Serialize.QuerySet
instance:实例
__table_name__:表名称
operation:操作类的实现
fields:操作的字段
sqlFields:sql方言
:param config_obj:配置类
:param log_conf:日志配置类
:param close_log:是否关闭日志显示功能
:param serializer:自定义序列化器,默认使用aestate.work.Serialize.QuerySet
Definition at line 23 of file repository.py.
◆ conversion()
def aestate.work.repository.Repository.conversion |
( |
|
self | ) |
|
将此Repository转换为ORM实体
Return:
ORM转换之后的实体对象
Definition at line 133 of file repository.py.
◆ copy()
def aestate.work.repository.Repository.copy |
( |
|
self, |
|
|
** |
kwargs |
|
) |
| |
复制对象进行操做
不建议多次创建对象,建议使用 pojo.copy()来生成对象
Definition at line 366 of file repository.py.
◆ create()
def aestate.work.repository.Repository.create |
( |
|
self, |
|
|
|
pojo, |
|
|
** |
kwargs |
|
) |
| |
插入属性:
返回受影响行数
:param kwargs:包含所有参数:
pojo:参照对象
last_id:是否需要返回最后一行数据,默认False
:return:rowcount,last_id if last_id=True
Definition at line 347 of file repository.py.
◆ execute_sql()
def aestate.work.repository.Repository.execute_sql |
( |
|
self, |
|
|
|
sql, |
|
|
|
params = None , |
|
|
|
mode = EX_MODEL.SELECT , |
|
|
** |
kwargs |
|
) |
| |
:param sql:执行的sql
:param params:防止sql注入的参数
:param mode:查询模式,默认使用SELECT,使用aestate.work.Modes.EX_MODEL枚举修改执行的sql类型
:param kwargs:其他需要的参数
Definition at line 376 of file repository.py.
◆ find_all()
QuerySet aestate.work.repository.Repository.find_all |
( |
|
self, |
|
|
** |
kwargs |
|
) |
| |
从当前数据表格中查找所有数据
Returns:
将所有结果封装成POJO对象集合并返回数据
Definition at line 154 of file repository.py.
◆ find_field()
QuerySet aestate.work.repository.Repository.find_field |
( |
|
self, |
|
|
* |
args, |
|
|
** |
kwargs |
|
) |
| |
只查询指定名称的字段,如:
SELECT user_name FROM `user`
即可参与仅解析user_name为主的POJO对象
:param args:需要参与解析的字段名
:return:
将所有结果封装成POJO对象集合并返回数据
Definition at line 165 of file repository.py.
◆ find_many()
QuerySet aestate.work.repository.Repository.find_many |
( |
|
self, |
|
|
|
sql, |
|
|
** |
kwargs |
|
) |
| |
查询出多行数据
第一个必须放置sql语句
:param kwargs:包含所有参数:
pojo:参照对象
sql:处理过并加上%s的sql语句
params:需要填充的字段
print_sql:是否打印sql语句
:return 将所有数据封装成POJO对象并返回
Definition at line 232 of file repository.py.
◆ find_one()
def aestate.work.repository.Repository.find_one |
( |
|
self, |
|
|
|
sql, |
|
|
** |
kwargs |
|
) |
| |
查找第一条数据
可以是一条
也可以是很多条中的第一条
code:
result = self.find_many(**kwargs)
if len(result) == 0:
return None
else:
return result[0]
:param kwargs:包含所有参数:
pojo:参照对象
sql:处理过并加上%s的sql语句
params:需要填充的字段
print_sql:是否打印sql语句
:return 返回使用find_many()的结果种第一条
Definition at line 195 of file repository.py.
◆ find_sql()
QuerySet aestate.work.repository.Repository.find_sql |
( |
|
self, |
|
|
|
sql, |
|
|
** |
kwargs |
|
) |
| |
返回多个数据并用list包装:
- 可自动化操作
- 请尽量使用find_many(sql)操作
:param kwargs:包含所有参数:
sql:处理过并加上%s的sql语句
params:需要填充的字段
print_sql:是否打印sql语句
Definition at line 263 of file repository.py.
◆ first()
def aestate.work.repository.Repository.first |
( |
|
self | ) |
|
◆ foreign_key()
def aestate.work.repository.Repository.foreign_key |
( |
|
self, |
|
|
|
cls, |
|
|
|
key_name, |
|
|
|
field_name = None , |
|
|
|
data = None , |
|
|
|
operation = None |
|
) |
| |
根据外键来查
Examples:
第一种:
>>> from apps.fontend.models import Label, SmLabel
>>> smlabel = SmLabel()
>>> label = Label()
>>> label.find_all()
>>> label.foreign_key(smlabel.copy, 'label_id')
>>> datas = label.datas
第二种:
>>> page = int(requests.GET['page']) \
... if 'page' in requests.GET.keys() \
... else 1
...
>>> sm_label_list = sm_label.orm.filter(id=pk)
>>> sm_label.foreign_key(
... cls=need.copy,
... key_name='label_id',
... field_name="need_list",
... datas=sm_label_list,
... operation=lambda dt, i: need.orm
... .find()
... .where(label_id=dt[i].id)
... .limit((page - 1) * PAGE_SIZE, PAGE_SIZE)
... .end()
...)
>>> need_list = sm_label.datas
>>> return Result.success(data=need_list.to_dict())
:param cls:目标外键的类,注意不是对象,是类
:param key_name:外键的id
:param field_name:保存进去的字段名字,默认以表名命名
:param data:使用已有的数据作为外键
:param operation:自定义操作
Definition at line 390 of file repository.py.
◆ last()
def aestate.work.repository.Repository.last |
( |
|
self | ) |
|
◆ remove()
def aestate.work.repository.Repository.remove |
( |
|
self, |
|
|
|
key = None |
|
) |
| |
执行更新操作:
返回受影响行数
:param key:主键,where的参考数据
:return:
Definition at line 315 of file repository.py.
◆ save()
def aestate.work.repository.Repository.save |
( |
|
self, |
|
|
* |
args, |
|
|
** |
kwargs |
|
) |
| |
◆ update()
def aestate.work.repository.Repository.update |
( |
|
self, |
|
|
|
key = None |
|
) |
| |
执行更新操作:
返回受影响行数
:param key:主键,where的参考数据
:return:
Definition at line 290 of file repository.py.
◆ datas
aestate.work.repository.Repository.datas |
◆ db_util
aestate.work.repository.Repository.db_util |
◆ ParseUtil
aestate.work.repository.Repository.ParseUtil |
◆ result
aestate.work.repository.Repository.result |
The documentation for this class was generated from the following file: