فارسی
باز کردن در Telegram

پست 🐍 آموزش جامع Python — پست ۲۲۲

12 اکتبر 2026
P
Python Coding Academy
🐍 آموزش جامع Python — پست ۲۲۲ ذخیره داده‌های باینری در SQLite با BLOB تا اینجا بیشتر با داده‌های متنی و عددی در SQLite کار کردیم. اما گاهی لازم است داده‌های باینری (Binary Data) مانند محتوای یک تصویر یا فایل را هم در Database ذخیره کنیم. برای این کار از نوع داده BLOB استفاده می‌کنیم. 🔹 BLOB چیست؟ BLOB مخفف Binary Large Object است و برای نگهداری داده‌های باینری استفاده می‌شود. مثلاً: محتوای تصویر فایل‌های کوچک داده‌های باینری تولیدشده توسط برنامه 🔹 ذخیره یک فایل در SQLite فرض کنیم فایلی به نام image.png داریم. import sqlite3 from pathlib import Path image_data = Path("image.png").read_bytes() with sqlite3.connect("files.db") as connection: connection.execute(""" CREATE TABLE IF NOT EXISTS files ( id INTEGER PRIMARY KEY, filename TEXT NOT NULL, content BLOB NOT NULL ) """) connection.execute( "INSERT INTO files (filename, content) VALUES (?, ?)", ("image.png", image_data) ) print("File saved") در این مثال، read_bytes() محتوای فایل را به شکل bytes می‌خواند و SQLite آن را در ستون BLOB ذخیره می‌کند. 🔹 بازیابی فایل برای دریافت داده‌ها و بازسازی فایل: import sqlite3 from pathlib import Path with sqlite3.connect("files.db") as connection: row = connection.execute( "SELECT content FROM files WHERE filename = ?", ("image.png",) ).fetchone() if row is not None: Path("restored.png").write_bytes(row[0]) print("File restored") else: print("File not found") اگر رکورد وجود داشته باشد، فایل restored.png ساخته می‌شود. 🔹 چرا از ? استفاده می‌کنیم؟ در این دستور: connection.execute( "INSERT INTO files (filename, content) VALUES (?, ?)", ("image.png", image_data) ) مقادیر به‌صورت پارامتری ارسال می‌شوند. این روش از قراردادن مستقیم داده‌ها در متن SQL جلوگیری می‌کند و برای داده‌های باینری نیز مناسب است. ⚠️ نکات مهم BLOB برای داده‌های باینری است؛ TEXT برای متن. فایل‌های بزرگ می‌توانند حجم Database و هزینه خواندن و نوشتن را افزایش دهند. در پروژه‌های بزرگ، ممکن است نگهداری فایل‌ها در فضای ذخیره‌سازی جداگانه و ذخیره مسیر یا شناسه آن‌ها در Database مناسب‌تر باشد. نام فایل را به‌تنهایی معیار مطمئنی برای شناسایی یک رکورد در نظر نگیر؛ در پروژه واقعی بهتر است از id یا یک شناسه یکتا استفاده کنی. 🧠 خلاصه Path.read_bytes() ↓ bytes ↓ SQLite BLOB ↓ bytes ↓ Path.write_bytes() 🎯 تمرین برنامه‌ای بنویس که فایل document.pdf را بخواند، محتوای آن را در جدول documents با ستون‌های id، filename و content ذخیره کند و سپس با استفاده از id، فایل را بازیابی کند. پست ۲۲۲ از دوره جامع Python 🐍
1 ·

در همان حوالی فید

PPython Coding Academy🌸 ۱۱ اکتبر | روز جهانی دختر 💜 امروز روز دخترانی است که رؤیاهای بزرگ دارند، سؤال می‌پرسند، یاد می‌گیرند و برای ساختن آینده‌ای بهتر تلاش می‌کنند. هر دختر شایسته‌یPPython Coding Academy🐍 آموزش جامع Python — پست ۲۲۱ بررسی تغییرات Database با total_changes گاهی در برنامه لازم داریم بدانیم از زمان باز شدن اتصال SQLite، چند ردیف تحت تأثیر عملیات ت
این پیام
PPython Coding Academy🐍 آموزش جامع Python — پست ۲۲۳ ذخیره و بازیابی تاریخ و زمان در SQLite در برنامه‌هایی مثل فروشگاه، سیستم حضور و غیاب و مدیریت سفارش‌ها، معمولاً لازم است تاریخ و زPPython Coding Academy🐍 آموزش جامع Python — پست ۲۲۴ مدیریت هم‌زمانی در SQLite با حالت WAL وقتی چند بخش از برنامه به‌طور هم‌زمان از یک Database استفاده می‌کنند، مدیریت خواندن و نوشتن
PPython Coding AcademyPython Coding Academy@PythonCodingAcademy · کانال · فناوری
30مشترک68پست در 30 روز
فید انجمن باز کردن در Telegram

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما