Skip to main content

simple CURD of mysql for python

Project description

pythink

PyPI - Python Version PyPI

灵感来自于ThinkPHP 部分代码实现参考了 records

根据现有业务 实现了简单的增删改查, 可以用作日常助手

依赖:

SQLAlchemy>=1.2.8

ps:原来基于peewee实现的,不过问题较多,就直接用SQLAlchemy

安装

pip install pythink

快速开始

新建表

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT '',
  `age` int(11),
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8

代码示例

1、连接数据库,创建Model

# -*- 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、插入操作

# 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、查询操作

# 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、更新操作

# 条件更新
data = {
    "name": "tom",
    "age": 30
}

>>> StudentThinkModel.update(data, "id=25")
>>> 1

5、删除操作

# 删除
>>> StudentThinkModel.delete("id=13")
>>> 1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pythink-0.0.5.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

pythink-0.0.5-py2-none-any.whl (11.0 kB view details)

Uploaded Python 2

File details

Details for the file pythink-0.0.5.tar.gz.

File metadata

  • Download URL: pythink-0.0.5.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.10.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.19.7 CPython/3.6.5

File hashes

Hashes for pythink-0.0.5.tar.gz
Algorithm Hash digest
SHA256 7649dd9898c99c4f915eafaaeae0531338d68e82daa4114a442d0c9f43e7ef02
MD5 afb59297bbd887091a9e22ecbf062509
BLAKE2b-256 cd0685de5b5cf2e1e9ce13dc968ad4715e0ff15e7b8c0348bb7b1ffcb38bd606

See more details on using hashes here.

File details

Details for the file pythink-0.0.5-py2-none-any.whl.

File metadata

  • Download URL: pythink-0.0.5-py2-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.10.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.19.7 CPython/3.6.5

File hashes

Hashes for pythink-0.0.5-py2-none-any.whl
Algorithm Hash digest
SHA256 dfa2c94f7c8c69f99ef499954bad34f6c5b684f5960fa2c6e1d43b355f732bf2
MD5 0293bc6ddfc6772961c3acd96fd8379a
BLAKE2b-256 6e50cafbc2619e94c3f519ac3ca06d30a5a2d8689b0a5f0e14369fd6552fbf83

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page