Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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

About

用python实现的一个简单的orm。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.