آموزش کلاس Field در Peewee
آموزش کلاس Field در Peewee
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس Field در Peewee خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش پایتون
کلاس مدل شامل یک یا چند ویژگی است که اشیاء کلاس Field در Peewee هستند. کلاس Base Field به طور مستقیم نمونه گیری نمی شود. Peewee کلاسهای فرعی مختلفی را برای انواع داده SQL معادل تعریف می کند.
کلاس Constructor of Field دارای پارامترهای زیر است
پارامترها | |
---|---|
1 | column_name (str)
نام ستون را برای فیلد مشخص کنید. |
2 | primary_key (bool)
فیلد کلید اصلی است. |
3 | constraints (list)
لیست محدودیت هایی که برای ستون اعمال می شود |
4 | choices (list)
یک تکرار از 2 تاپل برای نگاشت مقادیر ستون برای نمایش لیبل ها. |
5 | null (bool)
فیلد به NULL ها اجازه می دهد. |
6 | index (bool)
ایجاد یک فهرست در فیلد |
7 | unique (bool)
ایجاد یک شاخص منحصر به فرد در فیلد |
8 | Default
مقدار پیش فرض. |
9 | collation (str)
نام مجموعه برای فیلد |
10 | help_text (str)
متن راهنما برای اهداف فیلد |
11 | verbose_name (str)
نام راهنما برای اهداف فیلد |
کلاس های فیلد عددی
زیرکلاس های کلاس Field به انواع داده های مربوط در پایگاه های داده مختلف مانند SQLite ، PostgreSQL ، MySQL و غیره ترسیم می شوند.
کلاس های فیلد | |
---|---|
1 | IntegerField
کلاس زمینه برای ذخیره اعداد صحیح. |
2 | BigIntegerField
کلاس زمینه برای ذخیره اعداد صحیح بزرگ (به ترتیب نقشه های عدد صحیح ، bigint و bigint در SQLite ، PostegreSQL و MySQL). |
3 | SmallIntegerField
کلاس زمینه برای ذخیره اعداد صحیح کوچک (در صورت پشتیبانی از پایگاه داده). |
4 | FloatField
کلاس فیلد برای ذخیره اعداد نقاط شناور با انواع داده های واقعی مطابقت دارد. |
5 | DoubleField
کلاس زمینه برای ذخیره نقشه های اعداد نقطه شناور با دقت دوگانه به انواع داده های معادل در پایگاه های داده SQL مربوطه. |
6 | DecimalField
کلاس فیلد برای ذخیره اعداد اعشاری. پارامترها در زیر ذکر شده است –
|
فیلد های متن در Peewee
فیلدهای متنی موجود در Peewee به شرح زیر است –
Text fields
The text fields which are available in Peewee are as follows −
توضیحات فیلد | |
---|---|
1 | CharField
کلاس زمینه برای ذخیره سازی رشته ها. حداکثر 255 نویسه نوع داده SQL معادل varchar است. |
2 | FixedCharField
کلاس زمینه برای ذخیره سازی رشته های با طول ثابت. |
3 | TextField
کلاس زمینه برای ذخیره متن. نوع داده های نقشه به TEXT در SQLite و PostgreSQL و متن طولانی در MySQL. |
فیلدهای باینری
فیلدهای باینری در Peewee در زیر توضیح داده شده است –
توضیحات فیلد | |
---|---|
1 | BlobField
کلاس فیلد برای ذخیره داده های باینری. |
2 | BitField
کلاس فیلد برای ذخیره گزینه ها در یک ستون صحیح 64 بیتی. |
3 | BigBitField
کلاس زمینه برای ذخیره نقشه های بیتی دلخواه بزرگ در یک Binary Large OBject (BLOB). این میدان در صورت لزوم بافر اصلی را افزایش می دهد. |
4 | UUIDField
کلاس زمینه برای ذخیره سازی اشیاء شناسه منحصر به فرد (UUID). نقشه ها به نوع UUID در Postgres تایپ می شوند. SQLite و MySQL نوع UUID ندارند ، به صورت VARCHAR ذخیره می شوند. |
فیلد های تاریخ و زمان
فیلدهای تاریخ و زمان در Peewee به شرح زیر است –
توضیحات فیلم | |
---|---|
1 | DateTimeField
کلاس زمینه برای ذخیره اشیاء datetime.datetime. قالب های پارامتری خاصی را می پذیرد ، که می توان با آنها زمان زمان را رمزگذاری کرد. |
2 | DateField
کلاس فیلد برای ذخیره اشیا datetime.date. قالبهای پارامترهای خاص رشته را برای کدگذاری تاریخ می پذیرد. |
3 | TimeField
از آنجا که SQLite انواع داده DateTime ندارد ، این قسمت به عنوان رشته نگاشت می شود. |
ForeignKeyField
این کلاس برای ایجاد رابطه کلید خارجی در دو مدل و در نتیجه جداول مربوطه در پایگاه داده استفاده می شود. این کلاس با پارامترهای زیر نمونه برداری می شود –
توضیحات فیلد | |
---|---|
1 | model (Model)
مدل به مرجع |
2 | field (Field)
فیلد به مرجع در مدل (پیش فرض کلید اصلی است). |
3 | backref (str)
نام دسترسی برای مرجع عقب “+” دسترسی مجدد مرجع را غیرفعال می کند. |
4 | on_delete (str)
ON DELETE action. |
5 | on_update (str)
ON UPDATE action. |
6 | lazy_load (bool)
وقتی به ویژگی فیلد خارجی-خارجی دسترسی دارید ، شیء مربوطه را واکشی کنید. اگر FALSE باشد ، دسترسی به فیلد کلید خارجی مقدار ذخیره شده در ستون کلید خارجی را باز می گرداند. |
مثال
در اینجا نمونه ای از ForeignKeyField آورده شده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
from peewee import * db = SqliteDatabase('mydatabase.db') class Customer(Model): id=IntegerField(primary_key=True) name = TextField() address = TextField() phone = IntegerField() class Meta: database=db db_table='Customers' class Invoice(Model): id=IntegerField(primary_key=True) invno=IntegerField() amount=IntegerField() custid=ForeignKeyField(Customer, backref='Invoices') class Meta: database=db db_table='Invoices' db.create_tables([Customer, Invoice]) |
هنگامی که اسکریپت بالا اجرا می شود درخواست های SQL زیر اجرا می شوند –
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
CREATE TABLE Customers ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, address TEXT NOT NULL, phone INTEGER NOT NULL ); CREATE TABLE Invoices ( id INTEGER NOT NULL PRIMARY KEY, invno INTEGER NOT NULL, amount INTEGER NOT NULL, custid_id INTEGER NOT NULL, FOREIGN KEY ( custid_id ) REFERENCES Customers (id) ); |
هنگامی که در ابزار SQLiteStuidio GUI تأیید شد ، ساختار جدول به شکل زیر ظاهر می شود –
دیدگاه شما