数据库
文章平均质量分 93
岳涛@心馨电脑
专业会计
业余码农
琴娃家长
展开
-
【Python百日进阶-Web开发-Peewee】Day298 - 骇客 Hacks
黑客使用 peewee 收集的黑客。你有一个很酷的黑客想要分享吗?在 GitHub 上打开问题或联系我。乐观锁定乐观锁定在您可能通常使用SELECT FOR UPDATE(或在 SQLite 中,BEGIN IMMEDIATE)的情况下很有用 。例如,您可以从数据库中获取用户记录,进行一些修改,然后保存修改后的用户记录。通常,这种情况需要我们在事务期间锁定用户记录,从我们选择它的那一刻到我们保存更改的那一刻。另一方面,在乐观锁定中,我们不获取任何锁,而是依赖于我们正在修改的行中的内部版本列。在读取时原创 2024-09-01 11:19:43 · 945 阅读 · 1 评论 -
【Python百日进阶-Web开发-Peewee】Day294 - 查询示例(三)修改数据
文章目录14.5 修改数据 Modifying Data14.5.1 向表中插入一些数据 Insert some data into a table14.5.2 向表中插入多行数据 Insert multiple rows of data into a table14.5.3 将计算数据插入表中 Insert calculated data into a table14.5.4 更新一些现有数据 Update some existing data14.5.5 同时更新多行多列 Update multiple原创 2024-05-20 08:15:24 · 685 阅读 · 1 评论 -
【Python百日进阶-Web开发-Peewee】Day293 - 查询示例(二)连接和子查询
文章目录14.4 连接和子查询 Joins and Subqueries14.4.1 检索会员预订的开始时间 Retrieve the start times of members’ bookings14.4.2 计算网球场预订的开始时间 Work out the start times of bookings for tennis courts14.4.3 生成推荐过其他成员的所有成员的列表 Produce a list of all members who have recommended anothe原创 2024-05-11 17:39:24 · 939 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day292 - 查询示例(一)基本练习
查询示例这些查询示例取自站点PostgreSQL 练习。可以在入门页面上找到示例数据集。以下是这些示例中使用的架构的直观表示:…/_images/schema-horizontal.png模型定义要开始处理数据,我们将定义与图中的表对应的模型类。笔记在某些情况下,我们明确指定特定字段的列名。这是为了让我们的模型与用于 postgres 练习的数据库模式兼容。from functools import partialfrom peewee import *db = PostgresqlDa原创 2024-05-10 11:49:33 · 656 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day291 - Peewee 的扩展(十一)连接池/ Flask
文章目录13.19 连接池 Connection pool13.19.1 Pool APIsclass PooledDatabaseclass PooledPostgresqlDatabaseclass PooledPostgresqlExtDatabaseclass PooledMySQLDatabaseclass PooledSqliteDatabaseclass PooledSqliteExtDatabase13.20 测试工具 Test Utilsclass count_queries13.21 F原创 2024-05-09 08:15:43 · 954 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day290 - Peewee 的扩展(十)架构迁移(下)/ 映射
文章目录13.16.3 迁移 APImigrateclass SchemaMigrator(database)class PostgresqlMigratorclass SqliteMigratorclass MySQLMigrator13.17 映射 Reflectiongenerate_modelsprint_modelprint_table_sqlclass Introspectorclassmethod from_database13.18 数据库网址 Database URLconnectpars原创 2024-03-29 07:45:00 · 1075 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day289 - Peewee 的扩展(九)pwiz / 架构迁移(上)
文章目录13.15 pwiz,模型生成器13.15.1 命令行选项13.16 架构迁移 Schema Migrations13.16.1 示例用法13.16.2 支持的操作13.15 pwiz,模型生成器pwiz是 peewee 附带的一个小脚本,能够自省现有数据库并生成适合与底层数据交互的模型代码。如果您已经有一个数据库,pwiz 可以通过生成具有正确列关联和外键的骨架代码来给您一个很好的提升。如果您使用 安装 peewee ,pwiz 将作为“脚本”安装,您可以运行:setup.py instal原创 2024-03-28 04:15:00 · 1104 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day288 - Peewee 的扩展(七)shortcuts / 信号支持
文章目录13.13 快捷模式 Shortcutsmodel_to_dictdict_to_modelupdate_model_from_dictresolve_multimodel_queryclass ThreadSafeDatabaseMetadata13.14 信号支持 Signal support13.14.1 连接处理程序 Connecting handlers13.14.2 信号 APIclass Signal13.13 快捷模式 Shortcuts该模块包含帮助函数,用于表达使用 peew原创 2024-03-27 05:00:00 · 961 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day287 - Peewee 的扩展(六)字段等
文章目录13.10 字段class CompressedFieldclass PickleField13.11 混合属性 Hybrid Attributes13.11.1 混合 APIclass hybrid_methodclass hybrid_property13.12 键/值存储 Key/Value Storeclass KeyValue13.10 字段这些字段可以在playhouse.fields模块中找到。class CompressedFieldclass CompressedField原创 2024-03-26 04:00:00 · 675 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day286 - Peewee 的扩展(五)MySQL / 数据集
文章目录13.8 MySQL 扩展class JSONFieldMatch13.9 数据集 DataSet13.9.1 入门13.9.2 存储数据13.9.3 导入数据13.9.4 使用事务13.9.5 检查数据库13.9.6 读取数据13.9.7 导出数据13.9.8 APIclass DataSetclass Table13.8 MySQL 扩展Peewee 为使用mysql-connector驱动程序或mariadb-connector提供了一个备用数据库实现 。可以在 中找到实现playho原创 2024-03-25 13:00:00 · 1530 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day285 - Peewee 的扩展(四)Cockroach数据库
文章目录13.7 Cockroach数据库13.7.1 SSL 配置13.7.2 Cockroach 扩展 API13.7.3 CRDB 事务13.7.4 CRDB APIclass CockroachDatabaseclass PooledCockroachDatabaserun_transactionclass UUIDKeyFieldclass RowIDField13.7 Cockroach数据库CockroachDB (CRDB) 得到 peewee 的良好支持。from playhouse原创 2024-03-18 08:08:41 · 873 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day284 - Peewee 的扩展(三)postgreSQL
文章目录13.6.3 使用 hstore13.6.4 间隔支持 Interval support13.6.5 服务器端游标 Server-side cursors13.6.6 全文搜索 Full-text search13.6.7 postgres_ext API 说明ServerSideclass ArrayFieldclass DateTimeTZFieldclass HStoreFieldclass JSONFieldclass BinaryJSONFieldMatchclass TSVectorFi原创 2024-03-15 15:34:50 · 1039 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day283 - Peewee 的扩展(二)apsw/sqlcipher/postgresql
文章目录13.4 apsw,一个高级的 sqlite 驱动程序13.4.1 如何使用 APSW 数据库13.4.2 apsw_ext API 说明13.5 Sqlcipher 后端13.5.1 sqlcipher_ext API 说明13.6 Postgresql 扩展13.6.1 JSON 支持13.6.2 hstore 支持13.4 apsw,一个高级的 sqlite 驱动程序该apsw_ext模块包含一个适合与 apsw sqlite 驱动程序一起使用的数据库类。APSW 项目页面:https原创 2024-03-08 12:45:00 · 1724 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day282 - Peewee 的扩展(一)Sqlite 扩展
文章目录Register *all* functions.Alternatively, you can register individual groups. This will justregister the DATE and MATH groups of functions.If you only wish to register, say, the aggregate functions for aparticular group or groups, you can:If you only wis原创 2024-03-07 12:30:00 · 1831 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day281 - SQLite 扩展(六)
文章目录12.2.14 class LSMTable12.2.15 class ZeroBlob12.2.16 class Blob12.3 附加的功能12.2.14 class LSMTableclass LSMTableVirtualModel适合使用lsm1 扩展 的子类lsm1扩展是一个虚拟表,它为来自 SQLite4 的 lsm 键/值存储引擎提供 SQL 接口。笔记LSM1 扩展尚未发布(撰写本文时 SQLite 版本为 3.22),因此请考虑此功能是实验性的,可能会在后续版本中进原创 2024-03-06 08:19:41 · 932 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day280 - SQLite 扩展(五)
文章目录12.2.11 class TableFunction12.2.12 ClosureTable12.2.13 class BaseClosureTable12.2.11 class TableFunctionclass TableFunction实现用户定义的表值函数。与返回单个标量值的简单 标量或聚合函数不同,表值函数可以返回任意数量的表格数据行。简单的例子:from playhouse.sqlite_ext import TableFunctionclass Series(Ta原创 2024-03-05 10:46:44 · 1079 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day279 - SQLite 扩展(四)
文章目录12.2.10 class FTSModel12.2.10 class FTSModelclass FTSModel与FTS3 和 FTS4 全文搜索扩展VirtualModel一起使用的子类。FTSModel 子类应该正常定义,但是有几个注意事项:不支持唯一约束、非空约束、检查约束和外键。字段索引和多列索引被完全忽略Sqlite 会将所有列类型视为TEXT(尽管您可以存储其他数据类型,但 Sqlite 会将它们视为文本)。FTS 模型包含一个rowid由 SQLite 自动创建原创 2023-09-08 07:36:07 · 492 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day278 - SQLite 扩展(三)
文章目录12.2.7 class JSONPath12.2.8 class SearchField12.2.9 class FTS5Model12.2.7 class JSONPathclass JSONPath(field[, path=None])参数: field ( JSONField ) – 我们打算访问的字段对象。path ( tuple ) – 组成 JSON 路径的组件。一种方便的 Pythonic 表示 JSON 路径的方式,用于 JSONField.该JSONPath对象原创 2023-09-07 07:55:07 · 590 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day277 - SQLite 扩展(二)
文章目录12.2.6 class JSONField12.2.6 class JSONFieldclass JSONField( json_dumps=None , json_loads=None , ... )适合存储 JSON 数据的字段类,具有旨在与json1 扩展一起使用的特殊方法。SQLite 3.9.0以扩展库的形式添加了JSON 支持。SQLite json1 扩展提供了许多用于处理 JSON 数据的辅助函数。这些 API 作为特殊字段类型的方法公开,JSONField.要访问或修原创 2023-09-01 07:55:44 · 349 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day276 - SQLite 扩展(一)
文章目录十二 SQLite 扩展12.1 入门12.2 APIs12.2.1 class SqliteExtDatabase12.2.2 class CSqliteExtDatabase12.2.3 class RowIDField12.2.4 class DocIDField12.2.5 class AutoIncrementField十二 SQLite 扩展默认SqliteDatabase已经包含许多 SQLite 特定的特性:使用 SQLite 的一般说明。使用 PRAGMA 语句配置原创 2023-08-31 07:50:47 · 285 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day275 - Peewee API文档 - 查询生成器组件
文章目录11.6 Query-builder Internals 查询生成器组件11.6.1 class AliasManager11.6.2 class State11.6.3 class Context11.7 常量和助手11.7.1 class Proxy11.6 Query-builder Internals 查询生成器组件11.6.1 class AliasManagerclass AliasManager管理 SELECT 查询中分配给Source对象的别名,以避免在单个查询中使用多个原创 2023-08-25 08:04:50 · 211 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day274 - Peewee API文档 - 模型(二)class Model
文章目录11.5.5 class Modelclassmethod alias([alias=None])classmethod select(*fields)classmethod update([__data=无[, **update ]])classmethod insert([__data=None[, **insert ]])classmethod insert_many(rows [,fields =None])classmethod insert_from(query,fields)class原创 2023-08-24 06:53:11 · 348 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day273 - Peewee API文档 - 模式管理器、模型(一)
文章目录11.4 模式管理器Creates both tables but does not create the constraint for theLanguage.selected_snippet foreign key (because of the circulardependency).Explicitly create the constraint:11.5 模型Here, instead of defaulting to all columns, Peewee will defaultto原创 2023-08-23 07:57:41 · 295 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day272 - Peewee API文档 - 字段(三)
文章目录11.3.28 class ManyToManyField11.3.29 class DeferredThroughModel11.3.30 class CompositeKey11.3.28 class ManyToManyFieldclass ManyToManyField(model[, backref=None[, through_model=None[, on_delete=None[, on_update=None]]]])参数:model ( Model ) – 要创建关系原创 2023-08-22 07:55:39 · 223 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day271 - Peewee API文档 - 字段(二)
文章目录11.3.17 class UUIDField11.3.18 class BinaryUUIDField11.3.19 class DateTimeField11.3.20 class DateField11.3.21 class TimeField11.3.22 class TimestampField11.3.23 class IPField11.3.24 class BooleanField11.3.25 class BareField11.3.26 class ForeignKeyField原创 2023-08-18 07:57:23 · 268 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day270 - Peewee API文档 - 字段(一)
文章目录11.3 字段"id" INT GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEYGenerates a WHERE clause that looks like:WHERE (post.flags & 1 != 0)Query for sticky + favorite posts:Set the 4th bit on all Post objects.Clear the 1st and 3rd bits on all Post ob原创 2023-08-16 07:31:37 · 315 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day269 - Peewee API文档 - 查询生成器(五)
文章目录11.2.31 class _WriteQuery11.2.32 class Update11.2.33 class Insert11.2.34 class Delete11.2.35 class Index11.2.36 class ModelIndex11.2.31 class _WriteQueryclass _WriteQuery(table[, returning=None[, **kwargs]])参数: table ( Table ) – 要写入的表。返回( list )原创 2023-08-15 07:55:01 · 278 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day268 - Peewee API文档 - 查询生成器(四)
文章目录11.2.28 class SelectBase11.2.29 class CompoundSelectQuery11.2.30 class Select11.2.31 class _WriteQuery11.2.32 class Update11.2.33 class Insert11.2.34 class Delete11.2.35 class Index11.2.36 class ModelIndex11.2.28 class SelectBaseclass SelectBaseSel原创 2023-08-14 07:57:07 · 257 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day267 - Peewee API文档 - 查询生成器(三)
文章目录11.2.19 class NodeList11.2.20 class DQ11.2.21 class Tuple(*args)11.2.22 class OnConflict11.2.23 classEXCLUDED11.2.24 class BaseQuery11.2.19 class NodeListclass NodeList(nodes[, glue=' '[, parens=False]])参数:nodes (列表)——零个或多个节点。glue ( str ) – 转换为原创 2023-08-08 07:54:57 · 273 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day266 - Peewee API文档 - 查询生成器(二)
文章目录11.2.11 class Negated(node)11.2.12 class Value11.2.13 class Cast11.2.14 class Ordering11.2.15 class Entity11.2.16 class SQL11.2.17 class Function11.2.18 class Window11.2.11 class Negated(node)class Negated(node)表示一个否定的类似列的对象。11.2.12 class Valuecl原创 2023-08-03 07:50:00 · 291 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day265 - Peewee API文档 - 查询生成器(一)
文章目录11.2 查询生成器11.2.1 基类 class Node11.2.2 class Source11.2.3 class BaseTable11.2.4 class Table11.2.5 class Join11.2.6 class ValuesList11.2.7 class CTE11.2.8 class ColumnBase11.2.9 class Column(source, name)11.2.10 class Alias11.2 查询生成器11.2.1 基类 class Node原创 2023-08-02 16:16:26 · 336 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day263 - Peewee API文档 - 数据库(上)
文章目录十一、API 文档11.1 数据库11.1.1 Database 通用十一、API 文档本文档指定了 Peewee 的 API。11.1 数据库11.1.1 Database 通用class Database(database[, thread_safe=True[, autorollback=False[, field_types=None[, operations=None[, autoconnect=True[, **kwargs]]]]]])参数: database ( st原创 2023-07-26 07:54:32 · 240 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day261 - Peewee 表关系
文章目录十、 关系和连接10.1 模型定义10.1.1 创建测试数据10.2 执行简单连接10.3 连接多个表10.4 从多个来源中选择10.4.1 更复杂的例子10.5 子查询10.5.1 公用表表达式10.6 同一模型的多个外键10.7 加入任意字段十、 关系和连接在本文档中,我们将介绍 Peewee 如何处理模型之间的关系。10.1 模型定义我们将在示例中使用以下模型定义:import datetimefrom peewee import *db = SqliteDatabase('原创 2023-07-17 07:27:41 · 276 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day259 - Peewee 公用表达式
文章目录8.17 检索行元组/字典/命名元组8.18 Returning Clause8.19 公用表表达式8.19.1 简单示例8.19.2 复杂示例8.19.3 递归 CTE8.20 外键和连接8.17 检索行元组/字典/命名元组有时您不需要创建模型实例的开销,而只是想迭代行数据而不需要提供的所有 API Model。为此,请使用:dicts()namedtuples()tuples()objects()– 接受使用行元组调用的任意构造函数。stats = (Stat原创 2023-07-14 16:45:35 · 227 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day258 - Peewee 窗口函数
文章目录8.15 检索标量值8.16 窗口函数8.16.1 Ordered Windows8.16.2 分区窗口8.16.3 有界窗口8.16.4 过滤聚合8.16.5 重用窗口定义8.16.6 多个窗口定义8.16.7 帧类型:RANGE vs ROWS vs GROUPS8.15 检索标量值您可以通过调用来检索标量值Query.scalar()。例如:>>> PageView.select(fn.Count(fn.Distinct(PageView.url))).scalar()原创 2023-07-12 08:27:31 · 309 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day257 - Peewee过滤、排序、分页、计数、汇总记录
文章目录8.9 过滤记录8.9.1 更多查询示例8.10 排序记录8.11 获取随机记录8.12 分页记录8.13 计数记录8.14 汇总记录8.9 过滤记录您可以使用普通的 python 运算符过滤特定记录。Peewee 支持多种查询运算符。>>> user = User.get(User.username == 'Charlie')>>> for tweet in Tweet.select().where(Tweet.user == user, Tweet.i原创 2023-07-09 08:36:28 · 524 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day256 - Peewee 查询记录
文章目录8.6 选择单个记录8.7 创建或获取8.8 选择多条记录8.8.1 迭代大型结果集8.6 选择单个记录您可以使用该Model.get()方法检索与给定查询匹配的单个实例。对于主键查找,您还可以使用快捷方式Model.get_by_id()。此方法是使用给定查询调用的快捷方式Model.select(),但将结果集限制为单行。此外,如果没有模型与给定查询匹配,DoesNotExist则会引发异常。>>> User.get(User.id == 1)<__main__原创 2023-07-08 12:23:21 · 425 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day255 - Peewee 更新、删除记录
文章目录8.3 更新现有记录8.4 Atomic updates原子更新8.4.1 Upsert8.5 删除记录8.3 更新现有记录一旦模型实例具有主键,任何后续调用都 save()将导致UPDATE而不是另一个INSERT。模型的主键不会改变:>>> user.save() # save() returns the number of rows modified.1>>> user.id1>>> user.save()>>原创 2023-07-06 08:04:54 · 546 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day253 - Peewee 主键、复合主键等
7.5 主键、复合键和其他技巧AutoField用于标识自增整数主键。如果不指定主键,Peewee 会自动创建一个名为“id”的自增主键。要使用不同的字段名称指定自动递增 ID,您可以编写:class Event(Model): event_id = AutoField() # Event.event_id will be auto-incrementing PK. name = CharField() timestamp = DateTimeField(default=da原创 2023-06-30 08:24:33 · 460 阅读 · 0 评论 -
【Python百日进阶-Web开发-Peewee】Day252 - Peewee 创建模型表、索引和约束
7.2 创建模型表为了开始使用我们的模型,必须先打开与数据库的连接并创建表。Peewee 将运行必要的CREATE TABLE查询,另外创建任何约束和索引。# Connect to our database.db.connect()# Create the tables.db.create_tables([User, Tweet])笔记严格来说,没有必要调用connect() ,但明确的做法是很好的做法。这样,如果出现问题,错误会发生在连接步骤,而不是稍后的某个任意时间。笔记默认情况原创 2023-06-20 10:57:22 · 691 阅读 · 0 评论