با استفاده از sqlite3 در پایتون، یک پایگاه‌داده محلی به نام todo.db بسازید و جدولی به نام tasks با ستون‌های id (INTEGER PRIMARY KEY AUTOINCREMENT)، title (TEXT) و done (INTEGER) ایجاد کرده، سه رکورد وارد کنید، وضعیت یکی را به انجام‌شده تغییر دهید و در پایان همه رکوردها را بازیابی و چاپ کنید.

11.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 00:05

0.0

برای حل این پرسش از ماژول استاندارد sqlite3 پایتون استفاده کنید: با sqlite3.connect('todo.db') به دیتابیس متصل شوید، با cursor.execute جدول را با CREATE TABLE IF NOT EXISTS بسازید، سپس با execute یا executemany رکوردها را با پارامترهای جایگزین (؟) وارد کنید و پس از تغییر یک رکورد با UPDATE، تغییرات را با conn.commit() ذخیره کنید. در نهایت با SELECT همه ردیف‌ها را با fetchall یا iterate روی cursor خوانده و چاپ کنید. نکات: از پارامترگذاری برای جلوگیری از SQL injection استفاده کنید، می‌توانید از with sqlite3.connect(...) به‌عنوان context manager برای خودکار بستن اتصال بهره ببرید و ستون done را با مقادیر 0/1 نمایش دهید.

توسط پژوهشگر در 198 روز قبل ساعت 00:05
دسته بندی ها: Python Python for beginner
sara در 198 روز قبل ساعت 00:06

استفاده از with sqlite3.connect('todo.db') به‌عنوان context manager و پارامترگذاری (؟) برای اجرای INSERT/UPDATE بهترین روش است چون اتصال خودکار بسته و از SQL injection جلوگیری می‌کند. از CREATE TABLE IF NOT EXISTS برای جلوگیری از خطا در اجرای چندباره و از executemany برای واردکردن چند رکورد به‌صورت جمعی استفاده کنید. بعد از UPDATE حتماً با conn.commit() تغییرات را ذخیره کنید و ستون done را به‌صورت 0/1 نگه دارید یا با conn.row_factory = sqlite3.Row دسترسی دیکشنری‌مانند به ردیف‌ها داشته باشید. اگر برنامه هم‌زمانی بالایی دارد، فعال‌سازی WAL (PRAGMA journal_mode=WAL) یا تنظیمات مربوط به threads را در نظر بگیرید تا قفل‌گذاری و تداخل کاهش یابد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری