首页 > 数据库 >使用peewee模块操作数据库

使用peewee模块操作数据库

时间:2022-12-20 14:04:08浏览次数:68  
标签:name database peewee 数据库 db Person 模块 class

1. 简介

Peewee 是一个 Python ORM(Object-Relational Mapping)库,支持 SQLite、MySQL、PostgreSQL 和 Cockroach 数据库。在 ORM 系统中,每个类都映射到底层数据库中的一个表。ORM可以处理这些问题,我们就不需要自己编写乏味的数据库接口代码,可以专注于对系统逻辑进行编程。

2. 定义模型

类名为表名,在类中定义字段名称、类型、是否有空值等信息

from peewee import *

db = SqliteDatabase('people.db')

class Person(Model):
    name = CharField()
    birthday = DateField(null=True)

    class Meta:
        database = db # This model uses the "people.db" database.

class Pet(Model):
    owner = ForeignKeyField(Person, backref='pets')
    name = CharField()
    animal_type = CharField()

    class Meta:
        database = db

如果操作已经存在的数据库表,我们可以通过以下命令生成模型文件
指定数据库名,host,用户名,密码,数据库,模板文件名

python -m pwiz -e mysql -H localhost -p 3306 -u user -P 123456 database > db.py

3. 表格操作

3.1 创建表格

db.create_tables([Person, Pet])

3.2 删除表格

db.drop_tables([Person, Pet])

4. 数据增删改查

4.1 新增一条数据

from datetime import date
uncle_bob = Person(name='Bob', birthday=date(1960, 1, 15))
uncle_bob.save()

4.2 删除一行数据

e.g. 删除Tweet实例中创建日期为一年以前的数据

query = Tweet.delete().where(Tweet.creation_date < one_year_ago)
query.execute()

4.3 更新/修改数据

cls.update(**kwargs).where((cls.datadate==datadate) & (cls.account_id==account_id)).execute()

4.4 查询数据

grandma = Person.select().where(Person.name == 'Grandma L.').get()

等价于

grandma = Person.get(Person.name == 'Grandma L.')

更多内容可以查看官方文档

标签:name,database,peewee,数据库,db,Person,模块,class
From: https://www.cnblogs.com/impromptu/p/16979469.html

相关文章

  • 达梦数据库修改最大连接数
    达梦数据库安装默认连接数为100,实际开发中能不够用,如下是修改最大连接数的方法1、查看最大连接数:selectSF_GET_PARA_VALUE(2,'MAX_SESSIONS');#结果100 2、修改最......
  • python的time模块功能详解
    >>>importtime>>>dir(time)['__doc__','__name__','__package__','accept2dyear','altzone','asctime','clock','ctime','daylight','gmtime......
  • 数据库性能优化小结
    近期部门有大牛分享了下数据库的相关知识,自己这里趁热也总结一下对应测试来说比较容易涉及到的性能优化方面的知识。数据库的性能从宏观上可以分为:查询、插入;这里小结了下影......
  • python中telnetlib模块的使用
    python下能支持telnet的模块telnetlib是内置模块,直接import就可以了,其基本的使用方法也是比较简单的。 #encoding=utf-8defdo_telnet(Host,username,password,finish,......
  • python模块的打包
    模块安装:需要安装对应版本的setuptools模块,这是一个python的模块打包工具。(可以在pypi上找到)样例代码:新建test.py文件,内容如下:print"showme"新建一个setup.py编译文......
  • 使用 expdp导入导出oracle 数据库
    expdp用户名/密码@afspdbTABLES=table1dumpfile=/yfq/expdp_a11.dmp(1)执行之后报错了;expdp TNScouldnotresolvetheconnectidentifierspecified查了下是......
  • 在3568开发板上开发外设模块——竟如此简单!
     针对这些模块,我们编写了9个实验做成了《itop-3568开发板驱动实验手册》,从实验原理、硬件连接、原理图分析、实验平台、实验步骤一步一步教大家如果配置使用这些模块。......
  • mongodb数据库修复 mongodb数据库丢失恢复 mongodb数据库数据恢复 mongodb数据库文件0
    mongodb数据库修复mongodb数据库丢失恢复mongodb数据库数据恢复mongodb数据库文件0kb数据恢复客户名称保密数据类型mongodb3.0数据容量20GB故障类型强制重启服务器......
  • IDEA连接数据库
    在入门案例映射配置文件中存在报红的情况。问题如下:产生的原因:Idea和数据库没有建立连接,不识别表信息。但是大家一定要记住,它并不影响程序的执行。解决方式:在Idea中配......
  • 实现 .Net 7 下的数据库定时检查
    在软件开发过程中,有时候我们需要定时地检查数据库中的数据,并在发现新增数据时触发一个动作。为了实现这个需求,我们在.Net7下进行一次简单的演示。PeriodicTimer.Net6......