Metadata-Version: 2.1
Name: pythink
Version: 0.0.9
Summary: simple CURD of mysql for python
Home-page: https://github.com/mouday/PyThink
Author: Peng Shiyu
Author-email: pengshiyuyx@gmail.com
License: UNKNOWN
Description: pythink
        =======
        
        |PyPI - Python Version| |PyPI| |PyPI - Downloads|
        
        灵感来自于ThinkPHP 部分代码实现参考了 records
        
        根据现有业务 实现了简单的增删改查， 可以用作日常助手
        
        依赖：
        
        ::
        
            SQLAlchemy>=1.2.8
        
            ps：原来基于peewee实现的，不过问题较多，就直接用SQLAlchemy
        
        安装
        ====
        
        ::
        
            pip install pythink
        
        快速开始
        ========
        
        新建表
        
        .. code:: sql
        
            CREATE TABLE `student` (
              `id` int(11) NOT NULL AUTO_INCREMENT,
              `name` varchar(20) DEFAULT '',
              `age` int(11),
              `create_time` datetime DEFAULT NULL,
              PRIMARY KEY (`id`)
            ) ENGINE=InnoDB  DEFAULT CHARSET=utf8
        
        代码示例
        
        1、连接数据库，创建Model
        
        .. code:: python
        
            # -*- coding: utf-8 -*-
        
            from pythink import ThinkModel, ThinkDatabase
        
            db_url = "mysql://root:123456@127.0.01:3306/demo"
            db = ThinkDatabase(db_url)
        
        
            class StudentThinkModel(ThinkModel):
                table_name = "student"
                database = db
        
        2、插入操作
        
        .. code:: python
        
        
            # 1、增加单条记录
        
            data = {
                "name": "Tom"
            }
        
            >>> StudentThinkModel.insert(data)
            >>> 1
        
        
            # 2、增加多条记录
            data = [
                {
                    "name": "Tom",
                },
                {
                    "name": "Jack"
                }
            ]
        
            >>> StudentThinkModel.insert(data)
            >>> 2
        
        
        
            # 3、插入多条 分段插入
            data = [
                {
                    "name": "Tom",
                    "age": 24,
                },
                {
                    "name": "Tom",
                    "age": 25,
                },
                {
                    "name": "Tom",
                    "age": 26,
                },
                {
                    "name": "Tom",
                    "age": 27,
                },
                {
                    "name": "Tom",
                    "age": 28,
                },
                {
                    "name": "Tom",
                    "age": 29,
                }
            ]
        
            # 每次插入3 条数据
            >>> StudentThinkModel.insert(data, truncate=3)
            >>> 6
        
        3、查询操作
        
        .. code:: python
        
        
            # 1、查询数量
            >>> StudentThinkModel.count()
            >>> 24
        
        
        
            # 2、查询记录
            rows = StudentThinkModel.select(["name", "age"], where="id>25", limit=5)
            for row in rows:
                print(row.name, row.age)
        
        
            # ('Tom', 25L)
            # ('Tom', 26L)
            # ('Tom', 27L)
            # ('Tom', 28L)
            # ('Tom', 29L)
        
        4、更新操作
        
        .. code:: python
        
        
            # 条件更新
            data = {
                "name": "tom",
                "age": 30
            }
        
            >>> StudentThinkModel.update(data, "id=25")
            >>> 1
        
        5、删除操作
        
        .. code:: python
        
        
            # 删除
            >>> StudentThinkModel.delete("id=13")
            >>> 1
        
        当然，也可以不写表名，就像（省略部分代码）
        
        .. code:: python
        
            class BaseThinkModel(ThinkModel):
                database = db
        
        
            class StudentThinkModel(BaseThinkModel):
                """
                学生类
                会被自动转为 小写命名方式：student
                """
        
        更多关于使用示例： ThinkDatabase
        https://github.com/mouday/PyThink/blob/master/test\_database.py
        
        ThinkModel
        https://github.com/mouday/PyThink/blob/master/test\_modle\_extend.py
        
        更新记录
        ========
        
        -  部分版本可能存在不兼容，属于正常现象，后续版本会趋于稳定
        
        +--------------+----------+--------------------------------------------+
        | 时间         | 版本     | 主要更新                                   |
        +==============+==========+============================================+
        | 2019-04-14   | v0.0.1   | 基于peewee 实现基本的CURD                  |
        +--------------+----------+--------------------------------------------+
        | 2019-04-20   | v0.0.2   | 增强Model的功能,配置自动完成字段           |
        +--------------+----------+--------------------------------------------+
        | 2019-04-26   | v0.0.3   | 添加多行插入功能                           |
        +--------------+----------+--------------------------------------------+
        | 2019-04-27   | v0.0.4   | 将update、delete修改得更通用               |
        +--------------+----------+--------------------------------------------+
        | 2019-04-30   | v0.0.5   | 基于SQLAlchemy重写逻辑，完成多行分次插入   |
        +--------------+----------+--------------------------------------------+
        | 2019-04-30   | v0.0.6   | 修复安装报错的问题                         |
        +--------------+----------+--------------------------------------------+
        | 2019-05-10   | v0.0.7   | 添加自动转为类名为表名                     |
        +--------------+----------+--------------------------------------------+
        | 2019-05-15   | v0.0.8   | 给Model添加一些快捷方式                    |
        +--------------+----------+--------------------------------------------+
        
        .. |PyPI - Python Version| image:: https://img.shields.io/pypi/pyversions/pythink.svg
        .. |PyPI| image:: https://img.shields.io/pypi/v/pythink.svg
        .. |PyPI - Downloads| image:: https://img.shields.io/pypi/dm/pythink.svg?style=flat-square
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.6
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/x-rst
