輕量級數據庫sqlite與peewee的增刪改查操作

pycharm工具中加載數據庫操作:

這裏寫圖片描述

這裏寫圖片描述

如果在該DB文件下打不開數據表則請參考點這裏進入

# -*- coding:utf-8 -*-

#------------------------------------------------------------------------------
# Sqlite3 是一款nosql的輕量級數據庫,python2.7之後自動攜帶sqlite3數據庫
#    peewee模塊支持3種數據庫:Mysql  sqlite   postgresql
#------------------------------------------------------------------------------




#導入模塊
import peewee
import datetime
#建立鏈接
#connect = peewee.MySQLDatabase(
#    database = 'first_database', #數據庫名字
#    host = 'localhost',  #數據庫地址
#    user = 'root',  #數據庫用戶
#    passwd = '123'  #對應用戶密碼
#    )


#建立鏈接
connect = peewee.SqliteDatabase("test.db") #運行該程序後就能在當前目錄下創建“test.db”數據庫

#創建表
    #類名必須大寫
    #peewee創建數據庫的時候,默認會添加主鍵id
    #peewee創建數據庫字段默認不可爲空
class School(peewee.Model):
    name = peewee.CharField(max_length = 32) # 相當於在數據庫中定義了 name char(32)
    address = peewee.CharField(max_length = 32) # 相當於在數據庫定義了 address char(32)
    age = peewee.IntegerField() # age int
    birthday = peewee.DateTimeField() #日期

    #將表和數據庫連接
    class Meta:
        database = connect

if __name__ =="__main__":
    # peewee的增刪改查
    #注意:peewee最主要的是作增刪改,查一般都用sql語句,查邏輯複雜ORM模型適應不了,
    #     後面在介紹查的部分時會給出用sql語句查詢的例子

#-----------------------------------------------------------------------------
    #增
        # 第一種方法,常用
    T = School() #實例化表的類型
    T.name = 'lishi'
    T.age = 40
    T.address = 'shayang'
    T.birthday = datetime.datetime.now() #通過時間模塊輸入當前時間值
    T.save()   #提交
        #第二種方法
    T = School().insert(
        name = 'shayang',
        age = 40,
        birthday = datetime.datetime.now(),
        address = 'jinmen'
    )
    T.execute()  #執行
#-------------------------------------------------------------------------------
    #刪
    T =School.delete().where(School.id == 1)
    T.execute()  #執行指令
#-------------------------------------------------------------------------------

    #改
        #第一種方法,不常用
    T =School.update(name = "beifang").where(School.id == 5)
    T.execute()
        #第二種方法,常用
    T = School().get(id = 4)  #實例化表的類型
    T.name = 'mingzhu'
    T.save()

#-------------------------------------------------------------------------------

    #查
        #查所有
            #第一種方法
    T_list = School.select()
    #print(T_list)
    for T in T_list:
        #print(T)
        print(T.name,T.age,T.address,T.birthday) #輸出的第一個 u' 代表 unicode編碼

            #第二種方法,按照給定的標準按順序排列
    T_list = School.select().order_by(School.age)
    for T in T_list:
        print(T.name,T.age,T.address,T.birthday)

        #查多條,給定一個篩選條件
    T_list = School.select().where(School.age == 50)
    for T in T_list:
        print(T.name,T.age,T.address,T.birthday)

        #查一條
    print "---------------------------"
    T= School.get(id=3)
    print(T.id,T.name,T.age,T.address,T.birthday)

#綜合使用舉例:
    #綜合舉例
    T_list = School.select().where(School.name == "lishi",School.age == 40)
    for T in T_list:
        print(T.name)  #找不出則爲空

#一般查,使用SQL語句,下面是用的Mysql語句,在sqlite裏面無用
    sql = "select * from school where name = \'lishi\' or age = 40"
    help(School.raw(sql))


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章