国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python輕量級ORM框架Peewee訪問sqlite數據庫的方法詳解

2020-02-16 01:55:37
字體:
來源:轉載
供稿:網友

本文實例講述了Python輕量級ORM框架Peewee訪問sqlite數據庫的方法。分享給大家供大家參考,具體如下:

ORM框架就是 object relation model,對象關系模型,用來實現把數據庫中的表 映射到 面向對象編程語言中的類,不需要寫sql,通過操作對象就能實現 增刪改查。

ORM的基本技術有3種:

(1)映射技術

數據類型映射:就是把數據庫中的數據類型,映射到編程語言中的數據類型。比如,把數據庫的int類型映射到Python中的integer 類型。
類映射:把數據庫中的表,映射到面向對象編程語言的類,這樣就不用寫sql,直接操作對象就可以了。
關系映射:關系型數據庫最大的特點在于實體之間的關系,也就是表之間通過主外鍵的設置,產生的關聯,把這種關聯映射成編程語言中基于對象引用的關系連接。

(2)CURD技術

CURD就是增加、更新、檢索、刪除的意思,就是實現了數據庫中的增刪改查的功能。

(3)緩存技術

把數據庫中查詢到的數據,以類對象的形式,存儲在內存中,用的時候隨時提取。

在ORM查詢命令中,并不會去查詢數據庫,而是當真正要讀取數據時,才到數據庫中去查數據。

一、安裝peewee

c:/Python27/Scripts>pip install peeweeCollecting peewee Downloading peewee-2.8.5.tar.gz (506kB)  100% |████████████████████████████████| 512kB 437kB/sInstalling collected packages: peewee Running setup.py install for peewee ... doneSuccessfully installed peewee-2.8.5

二、定義表到類的映射

先把表定義為類,保存為 orm.py,后面的代碼會引用這個模塊。

代碼如下:

# -*- coding:utf8 -*-from peewee import *db = SqliteDatabase('test.db')class BaseModel(Model):  class Meta:    database = dbclass Course(BaseModel):  id = PrimaryKeyField()  title = CharField(null = False)  period = IntegerField()  description = CharField()  class Meta:    order_by = ('title',)    db_table = 'course'class Teacher(BaseModel):  id = PrimaryKeyField()  name = CharField(null = False)  gender = BooleanField()  address = CharField()  course_id = ForeignKeyField(Course,to_field='id',related_name = "course")  class Meta:    order_by = ('name',)    db_table = 'teacher'

三、創建表、新增記錄

# -*- coding:utf8 -*-from orm import *Course.create_table()Teacher.create_table()Course.create(id = 1,title='經濟學',period = 320,description='文科必修')Course.create(id = 2,title='大學語文',period = 300,description='所有學科必修')Course.create(id = 3,title='操作系統',period = 320,description='計算機必修')Course.create(id = 4,title='馬克思主義哲學',period = 320,description='必修')Teacher.create(id = 1,name = '張三',gender=True,address='...',course_id = 1)Teacher.create(id = 2,name = '李四',gender=False,address='-',course_id = 2)Teacher.create(id = 3,name = '王五',gender=True,address='=',course_id = 3)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌兰县| 汽车| 滦平县| 峨山| 永州市| 中方县| 漳浦县| 敦化市| 克山县| 丰宁| 辉县市| 濉溪县| 股票| 东宁县| 利辛县| 昌都县| 建平县| 富锦市| 红桥区| 湟源县| 定安县| 雅安市| 睢宁县| 汉沽区| 长宁区| 饶平县| 和龙市| 崇左市| 平泉县| 遂川县| 定边县| 砀山县| 元谋县| 乌恰县| 吉林市| 易门县| 宿松县| 邵阳市| 绥滨县| 凌云县| 商洛市|