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))