python peewee 各種用法

2021-10-04 02:40:38 字數 1934 閱讀 7748

max.bai

2020-03

目錄

python - peewee 各種用法

0x00 背景

0x01 表結構

0x02 peewee子查詢操作

0x03 modles混合sql **

0x04 peewee case用法

0x05 peewee or 用法

記錄peewee 使用中需要的一些用法,包括子查詢,混合sql指令碼,case用法, or用法

表結構 user

id  int             工號

name  varchar       名稱

mysql指令碼:

select

t1.id,

t1.name

from (

select u.id, u.name

from user

where u.id > 1000

) as t1

where t1.id < 2000

首先你已經有了modle檔案

# 子查詢  id > 1000

subquery = user.select(user.id, user.name).where(user.id>1000)

# 外面查詢

query = user.select(subquery.c.id, subquery.c.name).from_(subquery).where(subquery.c.id<2000).order_by(subquery.c.id)

當peewee支援不了的時候,可能需要寫mysql指令碼, 就需要用到sql類

比如sql("'string' as wk_days")   

等同sql指令碼   

'string' as wk_days

完成例子:

from peewee import join, sql, case, fn

user.select(user.id, user.name, sql("'string' as wk_days"))

等同sql指令碼:

select id, name, 'string' as wk_days from user
mysql指令碼:

select id, name, case when id > 1000 then 'old' else 'new' end as `tag` from user
peewee:

from peewee import join, sql, case, fn

tag = case(none, (

(user.id > 1000, 'old'),

), 'new')

query = user.select(user.id, user.name, tag.alias('tag')

or 用法採坑

官網用法

or 可以用 |

比如:where id > 500 or id < 100

peewee:

(user.id >500) | (user.id < 100)

切記加括號

官網介紹

query1 = user.select(user.name).where(user.id>100)

query2 = author.select(author.name).where(author.id>100)

union = query1 | query2  

# 或者

union = query1.union_all(query2)

query = union.select_from(union.c.name)

用遞迴刪除各種節點

include include include define maxsize 1000typedef intelemtype typedef struct node node typedef node linkednode 1 求以h為頭指標的單鏈表的節點個數 int getnodenum link...

各種符號用英文怎麼讀

我們每天都看見或敲擊這些符號,但不見得當老外或老師用英語說出這些符號時我們能立即反應過來,這正是促成此文的原因。1.波浪號tilde,源於西班牙語和葡語中的發音符號。2.感嘆號exclamation mark exclamation point bang,無需多解釋,在這個 咆哮體 盛行的時代,想不...

用Python實現各種排序演算法

比較相鄰的元素大小,將小的前移,大的後移,就像水中的氣泡一樣,最小的元素經過幾次移動,會最終浮到水面上。def bubble list for i in range len list for j in range 0,len list 1 i if list j list j 1 list j li...