python的简单mysql curd

pythink的Python项目详细描述


pythink

PyPI - Python VersionPyPIPyPI - Downloads

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

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

依赖:

SQLAlchemy>=1.2.8

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

安装

pip install pythink

快速开始

新建表

CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(20)DEFAULT'',`age`int(11),`create_time`datetimeDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8

代码示例

1、连接数据库,创建Model

# -*- coding: utf-8 -*-frompythinkimportThinkModel,ThinkDatabasedb_url="mysql://root:123456@127.0.01:3306/demo"db=ThinkDatabase(db_url)classStudentThinkModel(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)forrowinrows: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

当然,也可以不写表名,就像(省略部分代码)

classBaseThinkModel(ThinkModel):database=dbclassStudentThinkModel(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-14v0.0.1基于peewee 实现基本的CURD
2019-04-20v0.0.2增强Model的功能,配置自动完成字段
2019-04-26v0.0.3添加多行插入功能
2019-04-27v0.0.4将update、delete修改得更通用
2019-04-30v0.0.5基于SQLAlchemy重写逻辑,完成多行分次插入
2019-04-30v0.0.6修复安装报错的问题
2019-05-10v0.0.7添加自动转为类名为表名
2019-05-15v0.0.8给Model添加一些快捷方式

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
swing Java JScrollBar设计   java如何按名称显示输出   java如何将多个ArrayList连接成一个?   java存储SSLSocketFactory为静态字段   java获得了奇怪的csv文件时间输出   java类在JSP中没有该属性   java ehcache程序未运行   java如何对数组的所有元素应用或操作?   sqlite如何用Java编写adb shell命令   java泛型中的动态数据类型   javajaxrs@Path阻止加载静态资源   java如何在安卓中从主字符串中获取特定字符串?   java与FLAG_LAYOUT_NO_LIMITS相反   关于OpenJDK 11和OpenJFX 11(&Proguard)的java迁移问题   eclipse设置Selenium for Java(创建Firefox驱动程序所需的JAR和导入)   java如何将空字符串更新为oracle Clob   对象为什么在Java中同时重写equals()和hashCode()?   java从另一个类获取变量的正确方法