با استفاده از 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 نمایش دهید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از 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 را در نظر بگیرید تا قفلگذاری و تداخل کاهش یابد.
گزارش