http://yxtsunny.lofter.com/post/44049b_ae97046 refer : python ORM 模块peewee: https://www.cnblogs.com/noway-neway
带着这个问题,今天我们就一起来了解 peewee 的进阶操作。 关于 playhouse peewee 有很多的扩展,这些扩展都集中收录在 playhouse 中,例如支持多线程的 SqliteQueueDatabase,支持 migration,今天我们主要就数据库同步进行介绍 删除索引 # 索引名为{表名_列名} mgrt.drop_index(table='people_v2',index_name='people_v2_id') 更多内容详见: http://docs.peewee-orm.com /en/latest/peewee/playhouse.html#schema-migrations 以上就是今天的全部内容了,感谢您的阅读,我们下节再会。
领8888元新春采购礼包,抢爆款2核2G云服务器95元/年起,个人开发者加享折上折
文章目录 Peewee 是什么 如何使用 基本步骤 连接数据库 创建数据表 插入一条数据记录 获取条件过滤后的数据记录 更新数据记录 查询单条数据记录 其他要点 Peewee 是什么 Peewee 如何使用 基本步骤 通过 pip3 下载 peewee 新建 models.py 模型文件 在 models.py 中加入以下基础代码 运行 models.py,在 mysql 中生成 new_record 表 连接数据库 from peewee import * from settings import DATABASES # 连接数据库 MYSQL_DB = MySQLDatabase( host
peewee.OperationalError: (1267, "Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci
本文延续之前的风格,介绍另一个ORM模块:Peewee,希望通过简单的CRUD示例可以帮助大家快速上手。 环境说明 python v3.6.5 peewee v3.7.0 faker v0.9.1(生成伪造数据) 安装环境 pip install peewee faker CRUD示例 同样的,Peewee 也支持绝大多数关系型数据库,示例中使用的是PostgreSQL,用法及说明大多已在源代码中注释,请具体参考如下: from peewee import * from faker import Factory (effect_count) effect_count = User.delete().where(User.id >= 4).execute() print(effect_count) 参考链接 peewee
前言 在 Python 的 ORM 框架中,比较主流的有 Sqlalchemy,peewee,pony 等等。 但是其中 peewee 和 Django 的 Models 框架很像,如果了解 Django 的同学肯定对 peewee 会很亲切。今天我们就一起走进 peewee 的世界。 peewee 的世界 安装 pip install peewee 创建数据库&表 from peewee import * from datetime import date from playhouse.migrate people.select().where(people.name == 'phyger1').get() res.delete_instance() res.save() 更多内容详见官方文档: http://docs.peewee-orm.com /en/latest/peewee/quickstart.html 以上就是今天的全部内容了,感谢您的阅读,我们下节再会。
但是安装 peewee-mssql 后却发现运行报错,而且是 import peewee-mssql 的时候就报错了。 查看一下 peewee_mssql.py 源文件,发现 import peewee 的时候报错了,其中很多类在 peewee 中没有,估计是版本问题了。 peewee-mssql 目前最新版本是0.1.3,最后更新日期为2018-01-25,peewee 的最新版本是3.7.1,更新日期是2018-10-05。 peewee 在2018-01-29更新的3.0.1版本,在 peewee-mssql 最后一次更新日期之前的版本是2.10.2,这差的有点远。 将 peewee 降到2.10.2版本,运行还报错,找不到 pymssql,好吧,再去瞄了眼 peewee-mssql 的源码,发现是用 pymssql 做驱动的。
而peewee这个框架语法几乎与Django的ORM框架一致,而又非常轻量。 ? 它的安装非常简单: pip install peewee 如果你在使用mysql数据库的过程中报出如下错误: peewee.ImproperlyConfigured: MySQL driver not 则需要安装一个mysql的驱动: pip install pymysql peewee的whl包是880kB,pymysql的whl包是51KB,非常轻量级。 peewee的官方文档地址:http://docs.peewee-orm.com/en/latest/index.html 下面测试一下各项功能: from peewee import * db =
说明:peewee 中有很多方法是延时执行的,需要调用 execute() 方法使其执行。下文中不再特意说明这个问题,大家看代码。 peewee 不会为缺失的字段做默认处理。 2、当 rows 传递的是元组列表时,必须指定 fields,并且 fields 中字段名的顺序跟元组一致。 这里解释一下,Person 这个模型,我并没有指定主键,peewee 会自动增加一个名为 id 的自增列作为主键。 Person.get_by_id(1) 4、get_or_create Peewee 有一个辅助方法来执行“获取/创建”类型的操作: Model.get_or_create() 首先尝试检索匹配的行。 五、查询条件 当查询条件不止一个,需要使用逻辑运算符连接,而 Python 中的 and、or 在 Peewee 中是不支持的,此时我们需要使用 Peewee 封装好的运算符,如下: 逻辑符 含义 样例
数据库操作时不可避免的需要使用,这里采用的是peewee-async去解决。 peewee-async 是一个为 peewee orm框架提供异步接口的库。 github地址: tornado_learning.git (opens new window) # 配置 在settings.py文件中创建连接数据库 代码: server.py import peewee_async database = peewee_async.MySQLDatabase("tornado_learning", "127.0.0.1", port=3306, user="root", password ="root1234") 在server.py中引用数据库连接,并加入到app中 from peewee_async import Manager from tornado import web, ioloop id字段在peewee中会为每个model自动创建。
图1 2 利用peewee在Dash中整合数据库 说起peewee,很多使用过ORM(Object Relational Mapping,对象关系映射)工具的朋友都听说过,它跟SQLAlchemy等框架从功能上看都大同小异 还支持MySQL、PostgreSQL,你可以在http://docs.peewee-orm.com/en/latest/peewee/database.html查看更多使用示例,关于更多有关Model 创建的知识可以参考http://docs.peewee-orm.com/en/latest/peewee/models.html。 2.2 向表中新增记录 在数据表创建完成之后,我们第一件事当然是要向表中插入数据,这在peewee中操作非常简单: 「插入单条数据」 在peewee中向表中插入单条记录可以使用create()方法: # 数据删除的知识可以参考官方文档http://docs.peewee-orm.com/en/latest/peewee/querying.html#deleting-records部分内容。
图1 2 利用peewee在Dash中整合数据库 说起peewee,很多使用过ORM(Object Relational Mapping,对象关系映射)工具的朋友都听说过,它跟SQLAlchemy等框架从功能上看都大同小异 图3 而除了最简单的SQLite之外,peewee还支持MySQL、PostgreSQL,你可以在http://docs.peewee-orm.com/en/latest/peewee/database.html 查看更多使用示例,关于更多有关Model创建的知识可以参考http://docs.peewee-orm.com/en/latest/peewee/models.html。 2.2 向表中新增记录 在数据表创建完成之后,我们第一件事当然是要向表中插入数据,这在peewee中操作非常简单: 插入单条数据 在peewee中向表中插入单条记录可以使用create()方法: 图6 更多关于peewee数据删除的知识可以参考官方文档http://docs.peewee-orm.com/en/latest/peewee/querying.html#deleting-records
在使用 peewee 框架时,默认是不会出现日志消息的。 from peewee import Model, CharField, DateTimeField, IntegerField from peewee_mssql import MssqlDatabase 查看 peewee 的源码,发现其中有日志的定义: ? 在 peewee 中,定义了一个名为“peewee”的 logger,但是只给了一个 NullHandler,我们在代码中,logger = logging.getLogger('peewee'),这句实则就是获取了 peewee 中定义的 logger,并给它添加了一个 StreamHandler,那自然就可以输出日志了。
peewee。轻量,可扩展,易学习,但功能有限。 对于偏初级的小型项目,通常用不到很复杂的功能,这时候 peewee 或许是最好的选择。 今天我们就来重点介绍下 peewee 这个 Python ORM 库。 > 安装 pip install peewee > 连接数据库 以 SQLite 为例: import peewee db = peewee.SqliteDatabase('people.db') db.connect database = db name = peewee.CharField() birthday = peewee.DateField() Person.create_table() 地址:http://docs.peewee-orm.com/en/latest/peewee/quickstart.html > 自动生成代码 peewee 提供了一个功能,可以从已有的数据库反向生成数据模型代码
我在之前的博客 Python:logging.NullHandler 的使用 中介绍了 peewee 框架中的日志输出,简单来说就是 peewee 中定义了一个名为peewee 的 Logger 并添加了一个 假设我们在主程序中也有一个 Logger,调用 peewee 后,我想将两个日志输出到同一个日志文件中去。 当然我们也可以将主程序中的 Logger 名字定为 peewee,但这不仅太 low 了,而且如果再调用一个库,其中也封装好了一个 Logger,就不好处理了。 之前 peewee 的例子也就很容易解决了,只需要将 peewee 日志的 parent 属性设置为主程序的日志就可以了。 结语 其实这是一个比较容易说明的问题,完全没必要写这么多。
在使用 peewee 框架时,默认是不会出现日志消息的。 from peewee import Model, CharField, DateTimeField, IntegerField from peewee_mssql import MssqlDatabase '20', Birthday='2018-01-01') p.save() 我们在上面代码中加上一个日志的定义: import logging logger = logging.getLogger('peewee 在 peewee 中,定义了一个名为“peewee”的 logger,但是只给了一个 NullHandler,我们在代码中,logger = logging.getLogger('peewee'),这句实则就是获取了 peewee 中定义的 logger,并给它添加了一个 StreamHandler,那自然就可以输出日志了。
其中数据库部分代码: import datetime,requests,peewee db = peewee.SqliteDatabase("words.db") # 创建表class Word(peewee.Model ): #将表和数据库连接 class Meta: database = db word = peewee.CharField() ph_en = peewee.CharField () means = peewee.CharField() date = peewee.DateTimeField()Word.create_table() # 读取已有数据t_list = Word.get(word=word)print(t.word+' ['+t.ph_en+'] '+t.means+' '+str(t.date)+'\n') 关于 sqlite3 和 peewee
前言 去github搜 "python orm",最高star居然不是sqlalchemy,而是peewee 后来得知peewee,比sqlalchemy简单好用。值得一学哦!! 我总体感觉(peewee像 Django-ORM的分离版,,但比Django-ORM和SqlAlchemy 小巧,简单,文档也友好) 还有一个更重要的感觉就是, peewee 的 API方法名 和 SQL 安装和导入 pip install peewee from peewee import * # peewee的模块很结构化,都在peewee中,如果懒就都导入进来。 官档 Meta: http://docs.peewee-orm.com/en... 官档-事务: http://docs.peewee-orm.com/en...
以著名的ORM工具Peewee为例子: pip3 install pymysql pip3 install peewee 当我们声明数据库实例之后,试图链接数据库: from peewee import 所以,需要手动关闭数据库链接: from peewee import MySQLDatabase db = MySQLDatabase('mytest', user='root', password= 继续改进: from peewee import MySQLDatabase db = MySQLDatabase('mytest', user='root', password='root',host 事实上,Peewee为我们提供了一种更加简洁、优雅的方式来操作数据库链接: from peewee import MySQLDatabase db = MySQLDatabase('mytest', 上下文管理器(ContextManagers) 那么Peewee底层是如何实现对数据库的自动关闭呢?
后来才知道,原来这个叫ORM(Object Relational Mapping,对象关系映射),在Python下面有很多这样的类库,如SQLObject、Storm、peewee和SQLAlchemy 这里就给你们介绍一下Peewee的基本使用,因为它非常的轻量级,最主要是和Django的ORM 操作很像,如果你学过Django那么很容易上手。 前提条件: Python3.x 编程语言 MySQL数据库 PyMySQL驱动 ---- 一、安装peewee 安装非常简单,推荐使用pip命令。 pip install peewee 另外,你也可以通过下载包安装:点我 二、创建表 from peewee import * import datetime db = MySQLDatabase 当我们在安装peewee时,也会捎带着把它装上。 这里只介绍它里面的model_to_dict和dict_to_model两个方法。
扫码关注腾讯云开发者
领取腾讯云代金券