Metadata-Version: 2.1
Name: AQuery
Version: 0.0.1
Summary: 一个MySQL注解操作方式
Home-page: https://github.com/mouday/AQuery
Author: Peng Shiyu
Author-email: pengshiyuyx@gmail.com
License: MIT
Keywords: aquery mysql
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
Requires-Dist: mysql-connector-python (==8.0.17)


AQuery 一个注解方式操作数据库的便捷库 


IQuery类负责数据查询操作
不同的操作仅代表不同类型的返回值，也更加语义化


         操作      |    data参数           |       返回值
    ===========================================================
    insert        | dict                  | lastrowid {int}
    insert_many   | list[dict]            | rowcount {int}
    select        | dict                  | fetchall {list[dict]}
    select_one    | dict                  | fetchone {dict}
    update        | dict                  | rowcount {int}
    delete        | dict                  | rowcount {int}

    关键字使用
    #{key} 预编译为 %(key)s
    ${key} 原样替换
    参考 https://www.bbsmax.com/A/n2d9P9gY5D/

    特殊参数
    原样参数: raw_data
    列表参数: list_data

 ## Demo
 ```python
# -*- coding: utf-8 -*-

from aquery.query import IQuery


class MysqlQuery(IQuery):
    DATABASE_CONFIG = {
        "database": "data",
        "user": "root",
        "password": "aBc@123456",
        "host": "127.0.0.1",
        "port": 3306,
        "autocommit": True,
        "pool_name": "mypool",
        "pool_size": 1,
    }

    # 忽略的异常
    # IGNORE_ERRORS = (mysql.connector.errors.IntegrityError,)


if __name__ == '__main__':
    sql = "select * from student limit 10"
    # MysqlQuery.query_select(sql)

    sql2 = "INSERT INTO student(name, age) VALUES (#{name}, #{age})"
    MysqlQuery.query_insert_many(sql2, [{"name": "Tom", "age": 12}, {"name": "Tom", "age": 12}])

    @MysqlQuery.select("select * from student where id=#{uid}")
    def get_student_by_id(uid):
        return {"uid": uid}


    # print(get_student_by_id(14))
``` 

 ```python
# -*- coding: utf-8 -*-

from demo.query_demo import MysqlQuery
from aquery.query_model import IQueryModel


class BaseQueryModel(IQueryModel):
    query = MysqlQuery


class StudentModel(BaseQueryModel):
    table = "student"


if __name__ == '__main__':
    print(StudentModel.insert({"name": "Tom", "age": 12,'id': 12}))

    # print(StudentModel.insert_many([{"name": "Tom", "age": 12}]))

    # print(StudentModel.update_by_id(27, {"name": "--T'om", "age": 13}))
```

