CACode Framework For Python Flask,This framework corresponds to the ORM problem,You can see:https://github.com/cctvadmin/CACodeFramework-python-ORM
Project description
赞助商排在最顶上!!!!!!!!!
蓝星灯塔科技
CACode 开发团队
适用于 flask 的 ORM 框架
pip命令:pip install CACodeFramework
先放几个运行图保命🤡
单线程跑 1000 条数据,没开线程所以慢,各位使用的时候跑跑 threading
insert:
delete:
update:
select:
我先说点废话:😜
- 你们就当我在放屁
- 这是第一个版本,所以效率嘛~~~,😜
- 15 秒 1000 条插入
- 0.02 秒 1000 条查询
- 0.03 秒 1000 条更新
- 0.03 秒 1000 条删除
- bug 的话我这边暂时没找到,如果你在哪找到了尽快告诉我,我给你寄礼物😜
- 这是真送礼物,有手办,键盘。鼠标之类的
- 如果你愿意的话,我可以给你我的亲笔签名哈哈哈哈哈
- 别骂我,第一次写 python 的框架😜
- 嫌弃我写的不好你就别用,要用你自己写去
- 骂我我会伤心,但是过两天我就当你死了
- 我家里有一本民法典
- 我有朋友做律师和法官
- 接受捐献但希望捐献是因为觉得这个框架好用而不是因为我的帅气😜
- 我不缺钱
- 你们的钱不够我塞牙缝
- 这是第一个版本,所以效率嘛~~~,😜
使用指北:
先去看 test,里面有一个 【test.py】 文件,请先粗略浏览一遍该文件再继续查看教程
🐶 狗头保命,import全局
from CACodeFramework.MainWork import CACodeRepository, CACodePojo
from CACodeFramework.MainWork.Annotations import Table
from CACodeFramework.util import Config
第一步,你需要一个全局的 config 类,并让其继承【Config.config】
class ConF(Config.config):
def __init__(self, host='localhost', port=3306, database='demo', user='root', password='123456', charset='utf8'):
super(ConF, self).__init__(host, port, database, user, password, charset)
当然你也可以加以改造
class ConF(Config.config):
def __init__(self, host='localhost', port=3306, database='demo', user='root', password='123456', charset='utf8'):
configs = {
"IMG_SUFFIX": 'bmp jpg png tif gif pcx tga exif fpx svg psd cdr pcd dxf ufo eps ai raw WMF webp avif',
"SAVE_PATH": os.sep + 'tickets' + os.sep + 'img'
}
super(ConF, self).__init__(host, port, database, user, password, charset, conf=configs)
像这样加上你的自定义配置,然后放到你喜欢的 package 下面就可以当全局变量使用了。我放了好几个方法在那里,源码在这,感觉还能再改:
from CACodeFramework.util import JsonUtil
class config(object):
"""
配置类:
默认必须携带操作数据库所需的参数:
- host:数据库地址
- port:端口
- database:数据库名
- user:用户名
- password:密码
- charset:编码默认utf8
- conf:其他配置
"""
def __init__(self, host, port, database, user, password, charset='utf8', conf=None):
"""
必须要有的参数
:param host:数据库地址
:param port:端口
:param database:数据库名
:param user:用户名
:param password:密码
:param charset:编码默认utf8
:param conf:其他配置
"""
if conf is None:
conf = {}
self.conf = conf
self.host = host
self.port = port
self.database = database
self.user = user
self.password = password
self.charset = charset
def get(self):
"""
获取当前配置类
:return:
"""
return self
def set_field(self, key, value):
"""
设置字段
:param key:键
:param value:值
:return:
"""
self.conf[key] = value
return config
def get_field(self, name):
"""
获取字段
:param name:
:return:
"""
_this = self.get_dict()
return _this[name]
def get_dict(self):
"""
将配置类转转字典
:return:
"""
return self.__dict__
def get_json(self):
"""
将配置类转json
:return:
"""
return JsonUtil.parse(self.get_dict())
第二步,你需要一个 POJO 类,并让其继承 【CACodePojo.POJO】
class Demo(CACodePojo.POJO):
def __init__(self):
#这里必须在这设置表的字段名,全部赋值为 None 就行了
self.index = None
self.title = None
self.selects = None
self.success = None
第三步,好你已经成功一大半了👏👏,接下来就是要设置一个Repository,并通过这个资源库操作数据库
# 加入这个注解,name是表示你所操作的表名,msg是你要告诉后人这个表是什么玩意,不然别人接手你的坑就看不懂了😎
@Table(name="demo_table", msg="demo message")
# 这里继承了【CACodeRepository.Repository】类来操作数据库
class TestClass(CACodeRepository.Repository):
def __init__(self):
# 使用父类初始化这个资源库,并将之前设置好的全局配置导入进来放进去
# 记得一定要加括号(),因为我要的是你的对象🤷♂️🤷♂️
# participants是要参考解析的对象,也就是咱们之前创建的POJO类
# 这里一样要加括号()
super(TestClass, self).__init__(config_obj=ConF(), participants=Demo())
最后一小步了!!!!!✌了解各个方法的使用
首先是 find_all(),这个应该不用说了吧,看名识作用👏
然后就是 find_by_field(*args):
这个方法是按照字段来查询,比如说你可能不需要其他多余的数据,比如账号密码啥的你就可以不要了,多豪气看他不爽就给他踢掉
attributes:我生来肯定是有作用的,比如拖一下程序的运行
我:希望人出事🙏🙏
他返回的数据长这样:
其他字段你不想要就可以不要,这里我选查的index和title两个字段
数据返回的是list[POJO]类型,也就是你初始化Repository那会设置participants的类型,如果不是继承自【CACodePojo.POJO】就不能进行操作哦
到了动手的时候了 find_many(sql):💪💪
手动输入sql语句查询
注意!!!查找非当前POJO存在的字段时,尽量使用 as 改个名字
因为我着急用,所以上线的比较匆忙😆
插入一条 insert_one(sql):
可以处理insert操作,将现成已有数据的POJO插入到数据库
返回受影响行数
插入多条 insert_many(sql):
调用insert_one(sql)插入多条
更新操作 updates(sql):
由于删除也是更新操作,所以这里就没有多写一个delete(sql)了
好了,教程到这就结束了,我也懒得写了
再来一波赞助商的大LOGO
my wechat: cacode
蓝星灯塔科技
CACode 开发团队
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
CACodeFramework-1.0.1.1.tar.gz
(11.5 kB
view hashes)
Built Distribution
Close
Hashes for CACodeFramework-1.0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8f354bdc620427087426d206c48e80f7ed4cd7b375de210933ea3f30cbd1b4c |
|
MD5 | 1d25b1c221b1ea82cd13c3b7a359129d |
|
BLAKE2b-256 | 02642e69bc728690692e21db25baa52aed30fd095f3bc26f3bc9e691a2774581 |