شروع کار با Django
شروع کار با Django در دوره آموزش جامع پایتون با مفاهیمی مانند متغیرها، شرطها، حلقهها، توابع، کلاسها، فایلها و کار
وقتی یک برنامه اطلاعاتی را از کاربر دریافت میکند، معمولاً لازم است این اطلاعات را برای استفادههای بعدی ذخیره کند. برای مثال، در یک برنامه ثبتنام دانشآموزان، اطلاعاتی مانند نام، نام خانوادگی، سن و شماره تماس باید جایی ذخیره شوند تا بعداً بتوان آنها را مشاهده، ویرایش یا حذف کرد. روش مناسب برای ذخیره و مدیریت حجم زیادی از اطلاعات، استفاده از پایگاه داده (Database) است.
پایگاه داده محلی برای ذخیره و سازماندهی اطلاعات است؛ بهگونهای که برنامه بتواند بهسادگی اطلاعات را ذخیره، جستوجو، تغییر و حذف کند. برای مثال، فرض کنید میخواهیم اطلاعات دانشآموزان یک مدرسه را ذخیره کنیم:
| نام | نام خانوادگی | سن | معدل |
|---|---|---|---|
| علی | احمدی | 16 | 18.5 |
| سارا | محمدی | 17 | 19.2 |
| رضا | کریمی | 16 | 17.8 |
ذخیره کردن چنین اطلاعاتی در متغیرها یا حتی فایلهای معمولی، با بزرگتر شدن برنامه دشوار میشود. پایگاه داده برای مدیریت چنین اطلاعاتی طراحی شده است.
برای شروع کار با پایگاه داده در پایتون، از SQLite استفاده میکنیم. SQLite یک سیستم مدیریت پایگاه داده سبک است که اطلاعات را در یک فایل ذخیره میکند. برخلاف بعضی پایگاههای داده مانند MySQL، برای استفاده از SQLite نیازی به نصب و اجرای یک سرور جداگانه نداریم.
نکته مهم این است که پایتون بهصورت پیشفرض ماژول sqlite3 را در اختیار ما قرار میدهد؛ بنابراین برای شروع کار با SQLite معمولاً نیازی به نصب کتابخانه اضافی نداریم. ساختار کلی کار ما به این صورت خواهد بود:
Python → sqlite3 → SQLite Database
در ادامه یاد میگیریم چگونه این ارتباط را برقرار کنیم.
برای کار با SQLite ابتدا باید ماژول sqlite3 را با دستور ایمپورت وارد برنامه کنیم:
import sqlite3سپس با استفاده از تابع ()connect به پایگاه داده متصل میشویم:
import sqlite3
connection = sqlite3.connect("school.db")دقت کنید که در کد بالا:
sqlite3 ماژول مربوط به SQLite است.connect() برای ایجاد اتصال به پایگاه داده استفاده میشود."school.db" نام فایل پایگاه داده است.connection متغیری است که اتصال ایجادشده را در خود نگه میدارد.اگر فایل school.db وجود نداشته باشد، SQLite آن را ایجاد میکند. بنابراین بعد از اجرای این برنامه، یک فایل با نام:
school.dbدر پوشه پروژه ایجاد خواهد شد. حالا کد بالا را کاملتر میکنیم:
import sqlite3
connection = sqlite3.connect("school.db")
print("اتصال به پایگاه داده با موفقیت انجام شد.")
connection.close()در پایان، با استفاده از دستور:
connection.close()اتصال پایگاه داده را میبندیم. دقت کنید که بستن اتصال بعد از اتمام کار مهم است. زیرا برنامه نباید اتصالهای غیرضروری را باز نگه دارد.
connection چه کاری انجام میدهد؟متغیر connection در واقع نماینده ارتباط برنامه پایتون با پایگاه داده است. بعداً از همین اتصال برای انجام کارهایی مانند ساخت جدول، ذخیره اطلاعات، خواندن اطلاعات، ویرایش اطلاعات و حذف اطلاعات استفاده خواهیم کرد. برای مثال، در ادامه مسیر برنامه ما چیزی شبیه این خواهد شد:
import sqlite3
connection = sqlite3.connect("school.db")
# کار با پایگاه داده
connection.close()فعلاً قسمت «کار با پایگاه داده» خالی است. در اداه درس یاد میگیریم چگونه در همین قسمت جدول ایجاد کنیم و اطلاعات را داخل آن قرار دهیم.
فایل school.db یک فایل معمولی متنی نیست که بتوانیم آن را با Notepad باز کنیم و اطلاعات را بهصورت خوانا ببینیم. این فایل ساختار مخصوص پایگاه داده SQLite را دارد و برنامهها از طریق SQL و ماژول sqlite3 با اطلاعات داخل آن کار میکنند.
حالا که به پایگاه داده متصل شدیم، باید راهی داشته باشیم تا بتوانیم دستورهای SQL را روی آن اجرا کنیم. برای این کار از چیزی به نام Cursor استفاده میکنیم. Cursor را میتوانیم بهعنوان ابزاری در نظر بگیریم که از طریق آن به پایگاه داده دستور میدهیم و نتیجه اجرای دستورات را دریافت میکنیم. برای ایجاد Cursor، از متد ()cursor استفاده میکنیم:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
connection.close()در این کد:
cursor = connection.cursor()یک Cursor ایجاد کرده و آن را در متغیر cursor قرار دادهایم.
برای اجرای دستورات SQL از متد ()execute استفاده میکنیم. مثلاً میتوانیم با استفاده از دستور CREATE TABLE یک جدول برای دانشآموزان ایجاد کنیم:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
CREATE TABLE students (
id INTEGER,
name TEXT,
age INTEGER,
grade REAL
)
""")
connection.close()در این مثال، جدول students ایجاد میشود که چهار ستون به شکل زیر دارد:
| ستون | نوع داده | کاربرد |
|---|---|---|
id | INTEGER | شماره دانشآموز |
name | TEXT | نام دانشآموز |
age | INTEGER | سن |
grade | REAL | معدل |
در این مرحله همین چند نوع داده برای ما کافی است:
INTEGER
برای اعداد صحیح معادل int در پایتون. مانند:
16
25
100REAL
برای اعداد اعشاری معادل float در پایتون. مانند:
18.5
19.25
12.75TEXT
برای رشته یا متن معادل str در پایتون. مانند:
Ali
Sara
Pythonیک نکته بسیار مهم وجود دارد. آن هم این است که وقتی اطلاعاتی را در پایگاه داده ایجاد یا تغییر میدهیم، باید تغییرات را ثبت (Commit) کنیم. برای این کار از دستور commit به شکل زیر استفاده میکنیم:
connection.commit()بنابراین کد کامل شده قبلی به این شکل درمیآید:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
CREATE TABLE students (
id INTEGER,
name TEXT,
age INTEGER,
grade REAL
)
""")
connection.commit()
connection.close()متد ()commit باعث میشود تغییرات انجامشده در پایگاه داده ذخیره شوند.
اگر همین برنامه را یک بار اجرا کنیم، جدول students ایجاد میشود. اما اگر دوباره برنامه را اجرا کنیم، با خطایی شبیه این مواجه میشویم:
sqlite3.OperationalError:
table students already existsدلیل آن این است که جدول students قبلا ایجاد شده و ایجاد مجدد آن باعث بروز خطا میشود. برای جلوگیری از این مشکل میتوانیم هنگام ایجاد جدول از عبارت زیر استفاده کنیم که شرط موجود بودن این جدول را بررسی میکند:
CREATE TABLE IF NOT EXISTSimport sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS students (
id INTEGER,
name TEXT,
age INTEGER,
grade REAL
)
""")
connection.commit()
connection.close()در نتیجه اگر جدول از قبل وجود نداشته باشد، آن را میسازد. ولی اگر از قبل موجود باشد، برنامه بدون ایجاد مجدد آن ادامه پیدا میکند.
تا اینجا الگوی اصلی کار با SQLite را یاد گرفتیم:
import sqlite3
connection = sqlite3.connect("school.db")
cursor = connection.cursor()
# اجرای دستورات SQL
connection.commit()
connection.close()این چهار مرحله را به خاطر بسپارید:
1. اتصال به پایگاه داده
connection = sqlite3.connect("school.db")2. ایجاد Cursor
cursor = connection.cursor()3. اجرای دستورات
cursor.execute(...)4. ثبت تغییرات و بستن اتصال
connection.commit()
connection.close()تا اینجا برای کار با پایگاه داده معمولاً اتصال را باز میکردیم و در پایان خودمان آن را میبستیم:
connection = sqlite3.connect("school.db")
# کار با پایگاه داده
connection.commit()
connection.close()پایتون امکان استفاده از دستور with را هم فراهم میکند تا مدیریت اتصال سادهتر شود.
مثال:
import sqlite3
with sqlite3.connect("school.db") as connection:
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM students
""")
students = cursor.fetchall()
for student in students:
print(student)در این روش، مدیریت اتصال بهصورت خودکار انجام میشود و دیگر لازم نیست در پایان برنامه ()connection.close بنویسیم.
استفاده از with باعث میشود کد مربوط به مدیریت اتصال خواناتر و مطمئنتر باشد، بهخصوص زمانی که برنامه بزرگتر میشود.
حالا شیوه اتصال به دیتابیس را یاد گرفتید، وقت آن رسیده که با عملیات CRUD یعنی درج و حذف اطلاعات به داخل دیتابیس و همچنین خواندن و اصلاح اطلاعات آشنا شوید. به دلیل طولانی شدن درس، این بخش را در صفحه دیگری آوردهایم.
گام بعدی : عملیات CRUD در SQLiteشروع کار با Django در دوره آموزش جامع پایتون با مفاهیمی مانند متغیرها، شرطها، حلقهها، توابع، کلاسها، فایلها و کار
عملیات CRUD درSQLite در بخش قبل با مفهوم پایگاه داده، SQLite و نحوه اتصال پایتون به پایگاه داده آشنا شدیم.
اتصال به پایگاه داده (Database) در پایتون وقتی یک برنامه اطلاعاتی را از کاربر دریافت میکند، معمولاً لازم است این
مدیریت خطا (Error Handling) در پایتون در هنگام اجرای برنامه، ممکن است کاربر ورودی نامناسبی وارد کند یا برنامه با
کار با فایل، ماژول، پکیج و محیط مجازی در پایتون در پروژههای واقعی، معمولاً همهی کدها را در یک فایل
کپسولهسازی (Encapsulation) در پایتون فرض کنید کلاسی برای حساب بانکی نوشتهاید. اگر هر کسی بتواند موجودی حساب را مستقیماً تغییر
وراثت و مفاهیم پیشرفته شی گرایی تا اینجا یاد گرفتهاید که چگونه با استفاده از کلاس (Class) و شی (Object)
کلاس و شیء در پایتون (Object-Oriented Programming) تا اینجا با متغیرها، شرطها، حلقهها، توابع و ساختارهای داده در پایتون آشنا
تابع لامبدا (Lambda Function) در پایتون گاهی اوقات فقط به یک تابع خیلی کوچک نیاز داریم؛ تابعی که قرار است
توابع در پایتون اگر هنگام برنامهنویسی مجبور شوید یک قطعه کد را بارها تکرار کنید، برنامه شما طولانی، شلوغ و
مجموعه (Set) در پایتون به زبان ساده، Set مجموعهای از عناصر منحصربهفرد (Unique) است که ترتیب مشخصی ندارد و اجازه
دیکشنری در پایتون تا اینجا با لیست (List) و تاپل (Tuple) آشنا شدیم که هر دو مجموعهای از دادهها را
تاپل (Tuple) در پایتون بعد از آشنایی با لیست (List)، نوبت به یکی دیگر از ساختارهای داده در پایتون یعنی
لیست (List) در پایتون پرکاربردترین ساختار داده تا اینجا یاد گرفتید که هر متغیر فقط یک مقدار را در خود
ساختارهای داده در پایتون در برنامههای واقعی معمولاً با یک داده سروکار نداریم، بلکه باید تعداد زیادی اطلاعات را ذخیره
حلقههای تکرار در پایتون (Python Loops) فرض کنید معلم میخواهد نمرات ۳۰ دانشآموز را از کاربر دریافت کند. اگر حلقه
عملگرهای مقایسهای (Comparison Operators) تا اینجا یاد گرفتیم که با عملگرهای محاسباتی میتوانیم اعداد را با هم جمع، تفریق و…
دریافت ورودی از کاربر در پایتون (Python Input) تا اینجا یاد گرفتیم که چگونه مقدار یک متغیر را خودمان داخل
عملگرهای محاسباتی در پایتون (Arithmetic Operators) تقریباً تمام برنامهها به انجام محاسبات نیاز دارند؛ از جمع و تفریق ساده گرفته
کار با رشتهها در پایتون (Python Strings) مدیریت و پردازش متنها در برنامهها در دنیای برنامهنویسی، اطلاعات همیشه عدد و
متغیرها در پایتون (Python Variables) اولین قدم برای ذخیره و پردازش اطلاعات تصور کنید یک برنامه مینویسید که قرار است
شروع برنامه نویسی با پایتون ساخت اولین پروژه (Hello World) فهرست مطالب بعد از نصب Python چه کاری انجام دهیم؟
آموزش نصب پایتون و ابزارهای موردنیاز (راهنمای کامل برای ویندوز) اگر تصمیم گرفتهاید برنامهنویسی را یاد بگیرید، احتمالاً نام زبان
الگوهای کندل استیک پیشرفته: راهنمای جامع برای معاملهگران حرفهای الگو های کندل استیک پیشرفته (یا به بیان دیگر الگوهای شمعی
آیلتس جنرال یا آکادمیک؟ کدام را باید انتخاب کنیم؟ آیا میدانید که انتخاب اشتباه بین آیلتس آکادمیک و جنرال میتواند
دانلود رایگان نمونه سوالات آزمون PTE جنرال اگر تصمیم گرفتهاید با هدف مهاجرت به یک کشور انگلیسی زبان، در آزمون
معرفی آزمون های زبان انگلیسی معتبر در ایران| کدام یک بهتر است؟ اگه قصد ادامه تحصیل یا مهاجرت داشته باشید،
بهترین روشهای آمادگی برای آزمون تافل چگونه برای آزمون تافل آماده شویم؟ آیا شما هم قصد دارید برای کسب نمره
چگونه در خارج از کشور برای آزمون آیلتس ثبت نام کنیم؟ اگر قصد مهاجرت تحصیلی یا کاری دارید، احتمالاً نام
آزمون GRE مناسب چه رشتههایی است؟ اگر قصد ادامه تحصیل در مقاطع کارشناسی ارشد یا دکترا در دانشگاههای بینالمللی را
بهترین نمونه سوالات اسپیکینگ تافل هوم ادیشن آزمون تافل هوم ادیشن این روزها یکی از پرطرفدارترین گزینهها برای سنجش مهارت
نحوه ثبت نام در آزمون دولینگو در ایران به صورت کامل نحوه ثبت نام در آزمون دولینگو در ایران چگونه
هزینه آزمون GRE در ایران چقدر است؟ اگر قصد مهاجرت تحصیلی دارید، احتمالاً نام آزمون GRE به گوشتان خورده است.
راهنمای کامل ثبتنام و پرداخت هزینه آزمون PTE در ترکیه برای متقاضیان ایرانی آزمون PTE (Pearson Test of English) یکی از
ووچر آزمون چیست و چگونه میتوان آن را تهیه کرد؟ ثبتنام در آزمونهای بینالمللی مانند TOEFL، GRE، PTE، GMAT، IELTS
بهترین تکنیک های لیسنینگ آیلتس برای کسب نمره بالا آزمون آیلتس (IELTS) یکی از معتبرترین آزمونهای ارزیابی مهارت زبان انگلیسی
آزمون پلاس مرجع آموزش برنامهنویسی، هوش مصنوعی، شبکه، نمونه سؤالات کنکورهای کامپیوتر، آزمونهای زبان دکتری و مدارک بینالمللی فناوری اطلاعات است. با ارائه آموزشهای تخصصی، منابع آموزشی و راهنمای آزمونها، به دانشجویان و متخصصان کمک میکنیم تا مهارتهای خود را توسعه داده و در مسیر موفقیت تحصیلی و شغلی گام بردارند.