peewee基本使用

peewee是一个轻量级的ORM框架,peewee完全可以应对个人或企业的中小型项目的Model层,上手容易,功能强大。

一、安装peewee模块

使用pip命令工具安装peewee库

pip install peewee

二、链接数据库并建表

以mysql为例(peewee提供mysql,postgresql,sqllite)的支持。

from peewee import *

# test 指的数据库名称,host 指 MySql 主机地址,port 指 MySql 端口,user 用户名,password 密码

db = MySQLDatabase('test', host='127.0.0.1', port=3306, user='root', password='123456')

class BaseModel(Model):

class Meta:

database = db # 将实体与数据库进行绑定

# 继承自 BaseModel,直接关联 db,并且也继承了 Model,Model 提供增删改查的函数

class Person(BaseModel):

name = CharField(verbose_name='姓名', max_length=10, null=False, index=True)

passwd = CharField(verbose_name='密码', max_length=20, null=False, default='111111')

gender = IntegerField(verbose_name='性别', null=False, default=1)

is_admin = BooleanField(verbose_name='是否是管理员', default=False)

if __name__ == "__main__":

# 查询数据库是否连接

db.is_closed()

# 连接数据库

db.connect()

# 创建table

Person.create_table()

下面附上mysql的截图:

三、全部数据类型

Field Type

Sqlite

Postgresql

MySql

IntegerField

integer

integer

integer

BigIntegerField

integer

bigint

bigint

SmallIntegerField

integer

smallint

smallint

AutoField

integer

serial

integer

FloatField

real

real

real

DoubleField

real

double precision

double precision

DecimalField

decimal

numeric

numeric

CharField

varchar

varchar

varchar

FixedCharField

char

char

char

TextField

text

text

longtext

BlobField

blob

bytea

blob

BitField

integer

bigint

bigint

BigBitField

blob

bytea

blob

UUIDField

text

uuid

varchar(40)

DateTimeField

datetime

timestamp

datetime

DateField

date

date

date

TimeField

time

time

time

TimestampField

integer

integer

integer

IPField

integer

bigint

bigint

BooleanField

integer

boolean

bool

BareField

untyped

not supported

not supported

ForeignKeyField

integer

integer

integer

四、增删改查

新增数据

Model.create 向数据库中插入一条记录,并返回一个新的实例。

if __name__ == "__main__":

p = Person.create(name="bobby", passwd="12345")

修改数据

if __name__ == "__main__" :

p = Person.create(name="bobby", email="123@321")

p = Person.get(name='bobby')

p.passwd = '999999'

# 将修改后的数据进行存库

p.save()

修改某条数据应该先获取到该数据,使用get()函数,赋值给引用变量进行修改,save()函数保存。不过get()方法只能查询一条,通过这种方法只能修改一条数据,且是第一条满足条件的数据。

查找数据

单个查找:

和修改数据中的方法相同。

p = Person.select().where(Person.name == 'bobby').get()

多个查找:

Ps = Person.select()通过select函数可以获取所有数据。

if __name__ == "__main__":

ps = Person.select()

print(type(ps)) #

print(ps[0]) # 1

print(type(ps[0])) #

for item in ps:

print(item.name) # bobby

使用 filter()函数

if __name__ == "__main__":

ps = Person.filter(name='bobby')

for item in ps:

print(item.name) # bobby

以上的查询方式适用于比较简单的sql查询,如果查询语句十分复杂,且是多表关联就不是很灵活了。

删除数据

删除一条:

if __name__ == "__main__":

p = Person.get(name='bobby')

p.delete_instance()

删除多条:

if __name__ == "__main__":

Person.delete().where(Person.name=='bobby').execute()

peewee 中有很多方法是延时执行多,需要调用 excute() 方法使其执行。

peewee操作mysql_peewee基本使用相关推荐

  1. peewee 操作mysql_peewee 数据库操作

    peewee 数据库操作 from peewee import * from datetime import date import inspect db = SqliteDatabase('peop ...

  2. peewee操作mysql_Peewee 使用

    Peewee是一个简单小巧的Python ORM,它非常容易学习,并且使用起来很直观. 如果想快速入门,请参考官方的Quckstart. 本文,只是写今天在使用过程中的一些记录. 基本知识 在官方的Q ...

  3. peewee操作MySQL

    peewee 操作 MySQL peewee 的简单使用 为什么要用 ORM 为什么要使用 peewee 安装 peewee 连接 mysql 创建表 插入数据 查询数据 更新数据 删除数据 peew ...

  4. 关于大型网站技术演进的思考

    关于大型网站技术演进的思考(一)--存储的瓶颈(1) 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出 ...

  5. Python:peewee常用操作CRUD

    Defining models is similar to Django or SQLAlchemy 译文:定义模型类似于Django或SQLAlchemy 目录 1.数据库 Database 1.1 ...

  6. peewee mysql_peewee基本使用

    peewee基本使用 peewee是一个轻量级的ORM框架,peewee完全可以应对个人或企业的中小型项目的Model层,上手容易,功能强大. 一.安装peewee模块 使用pip命令工具安装peew ...

  7. python调用mysql数据进行计算_python使用peewee实现mysql数据操作

    peewee可用class来创建表,增删改查,应该是相对余单表(本人几乎没用过,自以为如此) 想实现sql查询,得到list,比如这样的结果[{'user_name':'名字'},{'user_nam ...

  8. peewee mysql_Peewee、MySQL和INSERT忽略

    使用db.__str__().它回来了 如果连接数据库是MySQL和 ^{pr2}$ 如果连接数据库是Sqlite.在 因此可以使用if语句,例如:if 'SqliteDatabase' in db. ...

  9. python安装orm_Python ORM框架之 Peewee入门

    之前在学Django时,发现它的模型层非常好用,把对数据库的操作映射成对类.对象的操作,避免了我们直接写在Web项目中SQL语句,当时想,如果这个模型层可以独立出来使用就好了,那我们平台操作数据库也可 ...

最新文章

  1. Kazoo安装和使用
  2. mysql挂科了咋办_大一挂科很难受怎么办?
  3. java中直角三角形第三条边,Java编程,根据输入三角形的三个边边长,程序能判断三角形类型为:等边、等腰、斜角、直角三角形,求代码...
  4. php 高效判断是否登录,php 判断用户是否登录
  5. Shell编程之多命令顺序执行和管道符
  6. 手机HiFi嗨不嗨 看完这些才能算是入坑
  7. 《高效能人士的7个习惯》PDF,复习笔记(上)
  8. 网络SSID是什么意思
  9. JVM cpu过高排查
  10. python conda安装与使用教程
  11. mysql connector安装教程_Debezium:mysql connector安装
  12. Access数据库常用函数大全
  13. RabbitMQ高可用--Quorum Queue(仲裁队列)的用法
  14. NodeMCU-ESP8266烧录手把手教程
  15. 基于ssm框架实现网上购物管理系统【附项目源码+论文说明】
  16. 安卓逆向——dy急速版设备抓包分析
  17. 电子商务系统的建设方式及技术选择
  18. Excel 中多行时快速生成自增长序号
  19. 管理信息系统基础知识点
  20. 融云即时通讯后续:产品需求与融云的碰撞

热门文章

  1. Ant Design 表单手机号验证
  2. 华为OD机试题(AB卷)真题抽中记录文档(更新到 6 月 21 日)
  3. python计算气缸耗气量
  4. [经验教程]微信红包发出后对方未领可以撤回吗及微信红包多久不领会自动退回?
  5. 《JavaScript 面向对象精要》 读书笔记
  6. 来聊聊 | 在中国,程序员这行真能干一辈子吗?
  7. redis队列限制流量
  8. 浅谈政务大数据的本质
  9. 工作后为什么攒不到钱?
  10. matlab输出10000以内的素数,matlab求10000以内的素数