class database
last_insert_id
(cursor, model)
parameters:
return type:
最後乙個插入的記錄的那行的主鍵,不一定非得叫『id'
rows_affected
(cursor
)return type:
受影響的行數
create_table
(model_class
[, safe=false])
parameters:
create_index
(model_class,
field_names
[, unique=false])
parameters:
create_foreign_key
(model_class,
field
)parameters:
drop_table
(model_class
[, fail_silently=false])
parameters:
note
目前這個版本(1.0)還沒有能實現級連刪表。
add_column_sql
(model_class,
field_name
)parameters:
return type:
sql suitable for adding the column
note
如果新增乙個不允許為空的字段將引起異常integrityerror.
rename_column_sql
(model_class,
field_name,
new_name
)parameters:
return type:
sql suitable for renaming the column
note
現欄位名必須是存在
note
sqlite 目前暫時不支援
drop_column_sql
(model_class,
field_name
)parameters:
note
sqlite 暫時不支援
create_sequence
(sequence_name
)parameters:
sequence_name– name of sequence to create
如果你的資料庫引擎支援 sequences才可以用
drop_sequence
(sequence_name
)parameters:
sequence_name– name of sequence to drop
同上,你的資料庫必須支援sequences
get_indexes_for_table
(table
)parameters:
table– the name of table to introspect
return type:
a list of (index_name,
is_unique)
tuples
在database的子類中實現
get_tables()
return type:
a list of table names in the database
在database子類中實現。
sequence_exists
(sequence_name
)rtype boolean:
目前,實現了的database子類有三個;sqlitedatabase、mysqldatabase、postgresqldatabase
class
sqlitedatabase
(database
) 「sqlite3」模組驅動
class
mysqldatabase
(database
)「mysqldb」 模組驅動
class
postgresqldatabase
(database
)「psycopg2」 模組驅動
後面還有一些工具。比如pwiz
如果我們的專案中有一些資料表是已經建立了的,那我們怎麼使用呢。
pwiz這個指令碼能夠幫我們分析已經資料庫中的表資訊,並構造出class,使用pwiz時的一些引數。
option
meaning
example
-hshow help
-edatabase backend
-e mysql
-hhost to connect to
-h remote.db.server
-pport to connect on
-p 9001
-udatabase user
-u postgres
-pdatabase password
-p secret
-spostgres schema
-s public
gauss@gauss:/usr/local/lib/python2.7/dist-packages$ python pwiz.py -u 'root' -p 'gauss' -e mysql test >my_models.py
利用pwiz分析我的test資料庫,然後自動生成了下面這個檔案,在我們要使用到這些表的時候引入即可。
from peewee import *
database = mysqldatabase('test', **)
class unknownfieldtype(object):
pass
class basemodel(model):
class meta:
database = database
class job(basemodel):
name = charfield()
class meta:
db_table = 'job'
peewee 超輕量級ORM運算元據庫
多條刪除,返回值為刪除的條數 1 delete instance tusermission.delete where tusermission.mission code mission code execute 單條刪除 2 name tusermission.get user name zhang...
DI php寫乙個輕量級的容器
摘要 理解什麼是di ioc,依賴注入 控制反轉。兩者說的是乙個東西,是當下流行的一種設計模式。大致的意思就是,準備乙個盒子 容器 事先將專案中可能用到的類扔進去,在專案中直接從容器中拿,也就是避免了直接在專案中到處new,造成大量耦合。取而代之的是在專案類裡面增設 setdi 和getdi 方法,...
乙個輕量級AOP的實現(開源)
事先宣告,本專案參考aop in c 和園內大神張逸的文章,思路神馬的都不是自己的!為了讓專案的 看起來更乾淨,需要乙個aop!於是就實現了乙個非常簡單的,非常輕量級,有多輕量級呢?實現的aop叫做earthworm 蚯蚓,為什麼叫這個?因為它小,它會疏通!專案的本意也是這樣,所以就叫這個!命名空間...