Skip to content

bujnlc8/orMysql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

orMysql, 顾名思义是一个针对mysql的orm,

可以看成sqlalchemy的精简版,但是也能满足大部分的需求。 它的mysql客户端使用PyMySQL, orMysql在内部实现了一个连接池,可以回收使用宝贵的连接。 具体像下面这样👇

from orMysql.db import db
from orMysql.model import Model

class User(Model):
    __tablename__ = 'test.user'
    id_ = IntFiled(name="id", doc="用户id", primary_key=True)
    age = IntFiled(name="age", doc="用户年龄")
    name = StringFiled(name="name", doc="用户姓名")

    @classmethod
    def add(cls, age, name):
        user = cls(age=age, name=name)
        db.session.add(user)

    @classmethod
    def get(cls, id):
        return cls.query.filter(cls.id_==id).first()

    def update(self, **kw):
        db.session.update(self, **kw)

用法说明

在使用之前需要先设置以下环境变量来使用数据库:

OR_MYSQL_HOST=127.0.0.1   # 数据库host
OR_MYSQL_PORT=33062       # 数据库port
OR_MYSQL_USER=root        # 数据库user
OR_MYSQL_PASSWORD=123456  # 数据库密码
OR_MYSQL_DB=              # 选择的数据库,可以在表中指定
OR_MYSQL_CHARSET=utf8mb4  # 客户端编码
OR_MYSQL_MAX_POOL_SIZE=5  # 连接池大小,默认为5
OR_MYSQL_MAX_LIFE_TIME=3600 # 连接最大存活时间,单位秒
OR_MYSQL_TRY_TIMES=3  # 获取连接尝试的次数i,默认三次

如果在环境变量里面没有设置, 可以在代码里调用orMysql.db.db.setup_db设置。

具体用法见测试

本项目可能存在一些坑,欢迎拍砖🧱。

本项目license是MIT。具体见LICENSE