Python: PonyORM設(shè)計(jì)精巧的ORM框架

      網(wǎng)友投稿 817 2022-05-30

      Pony is an advanced object-relational mapper

      文檔:

      PyPI: https://pypi.org/project/pony/

      Github: https://github.com/ponyorm/pony

      doc: https://docs.ponyorm.org/

      安裝

      pip install pony

      1

      代碼實(shí)例

      # -*- coding: utf-8 -*- from pony.orm import Database, db_session, Required, Set, select, set_sql_debug # 創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象 db = Database() # 建立數(shù)據(jù)庫(kù)連接 db.bind(provider='sqlite', filename=':memory:') # 開(kāi)啟debug,打印sql set_sql_debug(True) # 建立實(shí)體類 class Person(db.Entity): name = Required(str) age = Required(int) cars = Set('Car') class Car(db.Entity): make = Required(str) model = Required(str) owner = Required(Person) # 建表 db.generate_mapping(create_tables=True) """ CREATE TABLE "Person" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT, "name" TEXT NOT NULL, "age" INTEGER NOT NULL ) CREATE TABLE "Car" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT, "make" TEXT NOT NULL, "model" TEXT NOT NULL, "owner" INTEGER NOT NULL REFERENCES "Person" ("id") ON DELETE CASCADE ) SELECT "Car"."id", "Car"."make", "Car"."model", "Car"."owner" FROM "Car" "Car" WHERE 0 = 1 SELECT "Person"."id", "Person"."name", "Person"."age" FROM "Person" "Person" WHERE 0 = 1 """ # 插入數(shù)據(jù) with db_session: p1 = Person(name='John', age=20) p2 = Person(name='Mary', age=22) p3 = Person(name='Bob', age=30) c1 = Car(make='Toyota', model='Prius', owner=p2) c2 = Car(make='Ford', model='Explorer', owner=p3) """ INSERT INTO "Person" ("name", "age") VALUES (?, ?) ['John', 20] INSERT INTO "Person" ("name", "age") VALUES (?, ?) ['Mary', 22] INSERT INTO "Person" ("name", "age") VALUES (?, ?) ['Bob', 30] INSERT INTO "Car" ("make", "model", "owner") VALUES (?, ?, ?) ['Toyota', 'Prius', 2] INSERT INTO "Car" ("make", "model", "owner") VALUES (?, ?, ?) ['Ford', 'Explorer', 3] """ # 更新數(shù)據(jù) with db_session: p = Person.get(id=2) # 使用get來(lái)獲取一條數(shù)據(jù),如果沒(méi)有查到會(huì)返回None p.name = "new name" """ SELECT "id", "name", "age" FROM "Person" WHERE "id" = ? [2] UPDATE "Person" SET "name" = ? WHERE "id" = ? ['new name', 2] """ # 查詢數(shù)據(jù) with db_session: for person in select(p for p in Person if p.age > 20)[:]: print(person.name, person.age, person.cars) """ SELECT "p"."id", "p"."name", "p"."age" FROM "Person" "p" WHERE "p"."age" > 20 SELECT "id", "make", "model", "owner" FROM "Car" WHERE "owner" = ? [2] SELECT "id", "make", "model", "owner" FROM "Car" WHERE "owner" = ? [3] """

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      Python: PonyORM設(shè)計(jì)精巧的ORM框架

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      96

      97

      98

      99

      100

      101

      102

      103

      104

      105

      106

      107

      108

      109

      110

      111

      112

      113

      114

      115

      參考

      只有 Python 魔法少女才知道的 PonyORM

      拋棄丑陋,擁抱優(yōu)雅–Pythonic的Pony ORM

      Python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:區(qū)塊鏈技術(shù)開(kāi)發(fā) 建立商城系統(tǒng)的幾大優(yōu)勢(shì)
      下一篇:Python編程:sh模塊執(zhí)行shell命令
      相關(guān)文章
      中文字幕亚洲无线码a| 亚洲欧洲成人精品香蕉网| 老子影院午夜伦不卡亚洲| 亚洲综合图色40p| 亚洲av中文无码乱人伦在线r▽| 亚洲日本一区二区三区在线不卡| 婷婷国产偷v国产偷v亚洲| 亚洲Av永久无码精品黑人| 亚洲一卡2卡3卡4卡5卡6卡| 亚洲福利秒拍一区二区| 亚洲va中文字幕无码久久不卡| 亚洲乳大丰满中文字幕| 亚洲一区二区三区在线观看精品中文 | 日本亚洲免费无线码 | 亚洲自偷自拍另类图片二区| 亚洲区小说区激情区图片区| 亚洲乳大丰满中文字幕| 亚洲成在人线av| 亚洲a在线视频视频| 麻豆亚洲AV永久无码精品久久| 亚洲情a成黄在线观看动漫尤物| 亚洲一区二区中文| 亚洲综合激情视频| 亚洲人成在线免费观看| 中文文字幕文字幕亚洲色| 亚洲午夜无码久久久久软件| 亚洲av无码一区二区三区人妖| 国产天堂亚洲国产碰碰| 亚洲精品成人区在线观看| 成人亚洲性情网站WWW在线观看| 国产亚洲精品va在线| 香蕉蕉亚亚洲aav综合| 亚洲首页在线观看| 亚洲一卡2卡4卡5卡6卡在线99 | 亚洲综合网站色欲色欲| 久久综合图区亚洲综合图区| 久久精品国产亚洲av影院| 亚洲婷婷天堂在线综合| 在线亚洲午夜片AV大片| 久久精品熟女亚洲av麻豆| 亚洲人成无码网WWW|