آموزش ایجاد یک رکورد جدید در Peewee
آموزش ایجاد یک رکورد جدید در Peewee
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش ایجاد یک رکورد جدید در Peewee خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش پروژه محور پایتون
در Peewee، بیش از یک دستور وجود دارد که می توانید با استفاده از آنها یک رکورد جدید در جدول اضافه کنید. ما قبلاً از متد ()saveنمونه استفاده کرده ایم.
1 2 |
rec1=User(name="Rajesh", age=21) rec1.save() |
کلاس Peewee.Model همچنین دارای متد ()create است که یک نمونه جدید ایجاد می کند و داده های آن را در جدول اضافه می کند.
1 |
User.create(name="Kiran", age=19) |
علاوه بر این ، مدل همچنین ()insert را به عنوان متد کلاس دارد که SQL insert query object را می سازد. متد ()execute شیء Query یک سطر را در جدول زیر اضافه می کند.
1 2 |
q = User.insert(name='Lata', age=20) q.execute( |
شی کوئری معادل INSERT است ()query.q.sql رشته کوئری را برمی گرداند.
1 2 |
print (q.sql()) ('INSERT INTO "User" ("name", "age") VALUES (?, ?)', ['Lata', 20]) |
در اینجا کد کاملی وجود دارد که استفاده از روشهای بالا برای درج رکورد را نشان می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
from peewee import * db = SqliteDatabase('mydatabase.db') class User (Model): name=TextField() age=IntegerField() class Meta: database=db db_table='User' db.create_tables([User]) rec1=User(name="Rajesh", age=21) rec1.save() a=User(name="Amar", age=20) a.save() User.create(name="Kiran", age=19) q = User.insert(name='Lata', age=20) q.execute() db.close() |
ما می توانیم نتیجه را در SQLiteStudio GUI تأیید کنیم.
Bulk Inserts
به منظور استفاده همزمان از چندین ردیف در جدول ، Peewee دو روش ارائه می دهد: bulk_create و insert_many.
()insert_many
متد () insert_many کوئری معادل INSERT را با استفاده از لیستی از اشیاء دیکشنری ایجاد می کند که هریک دارای جفت مقدار فیلد از یک شی هستند.
1 2 3 |
rows=[{"name":"Rajesh", "age":21}, {"name":"Amar", "age":20}] q=User.insert_many(rows) q.execute() |
در اینجا نیز ()q.sql رشته کوئری INSERT را به شکل زیر بر می گرداند –
1 2 |
print (q.sql()) ('INSERT INTO "User" ("name", "age") VALUES (?, ?), (?, ?)', ['Rajesh', 21, 'Amar', 20]) |
()bulk_create
این روش یک آرگومان لیست می گیرد که شامل یک یا چند نمونه ذخیره نشده از مدل نقشه شده در یک جدول است.
1 2 3 |
a=User(name="Kiran", age=19) b=User(name='Lata', age=20) User.bulk_create([a,b]) |
کد زیر از هر دو روش برای انجام عملیات درج انبوه استفاده می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from peewee import * db = SqliteDatabase('mydatabase.db') class User (Model): name=TextField() age=IntegerField() class Meta: database=db db_table='User' db.create_tables([User]) rows=[{"name":"Rajesh", "age":21}, {"name":"Amar", "age":20}] q=User.insert_many(rows) q.execute() a=User(name="Kiran", age=19) b=User(name='Lata', age=20) User.bulk_create([a,b]) db.close() |
دیدگاه شما