دیتابیس Database و مدل Model در Django
دیتابیس Database و مدل Model در جنگو از درس قبل به خاطر دارید که آطلاعات دورهها به صورت ثابت داخل
در درسهای قبل با Django آشنا شدیم، محیط مجازی را ساختیم، Django را نصب کردیم و اولین پروژه خودمان را ایجاد کردیم. در این درس میخواهیم وارد یکی از مهمترین بخشهای Django شویم:
در پایان این درس، پروژه ما چند صفحه خواهد داشت و کاربر میتواند با وارد کردن URLهای مختلف، صفحات مختلف سایت را مشاهده کند.
URL همان آدرسی است که کاربر در مرورگر وارد میکند. برای مثال:
وقتی کاربر یک URL را در مرورگر وارد میکند، Django باید متوجه شود که این درخواست مربوط به کدام بخش از برنامه است. برای این کار از URL Routing استفاده میکنیم. یعنی به Django میگوییم: اگر کاربر این URL را وارد کرد، این View را اجرا کن.
وقتی یک پروژه Django ایجاد میکنیم، Django به صورت خودکار فایلی به نام urls.py ایجاد میکند. این فایل وظیفه دارد URLهای پروژه را مدیریت کند. اگر فایل urls.py را باز کنیم، معمولاً چیزی شبیه به شکل زیر میبینیم.
در اینجا دو مورد مهم داریم. اول تابع path برای تعریف URLها. و دوم urlpatterns که لیست URLهای پروژه را داخل آن تعریف میکنیم.
()path تابعی است که برای تعریف مسیرهای URL استفاده میشود.
'/courses' مسیر URL است. که به آن یک Route میگوییم و مشخص میکند کاربر با چه آدرسی به یک بخش از سایت دسترسی پیدا کند.
حالا باید ببینیم وقتی کاربر یک URL را درخواست کرد، چه چیزی باید پاسخ او را ایجاد کند. اینجا مفهوم View وارد میشود. View بخشی از برنامه است که درخواست کاربر را دریافت میکند و یک پاسخ به او برمیگرداند. به زبان ساده:
کاربر ← URL ← View ← Response ← مرورگر
برای مثال، کاربر وارد آدرس /courses/ میشود، جنگو بررسی میکند که این URL به کدام View مربوط است. سپس View اجرا میشود و مثلاً این متن را برمیگرداند:
برای اینکه View ایجاد کنیم، معمولاً آن را داخل یک App قرار میدهیم. بنابراین ابتدا یک App برای پروژه ایجاد میکنیم. در درس قبلی یادتان هست که یک App با نام courses از طریق دستور زیر ایجاد کردیم:
بعد از ایجاد app ، از داخل پوشه courses فایل views.py را باز کنید. حالا یک View ساده ایجاد میکنیم:
در اینجا یک تابع به نام home ایجاد کردهایم. که پارامتر request درخواست کاربر را دریافت میکند و این قسمت:
پاسخ را به مرورگر برمیگرداند.
برای ارسال یک پاسخ ساده به مرورگر میتوانیم از HttpResponse استفاده کنیم. مثلاً:
در این حالت مرورگر متن زیر را نمایش میدهد:
حالا باید View را به یک URL متصل کنیم. ابتدا در فایل urls.py که در درس قبلی برای اپ courses ایجاد کرده بودیم (یعنی در مسیر courses/urls.py) این خط را اضافه کنیم:
و در نهایت در فایل اصلی پروژه (یعنی در مسیر config/urls.py) این خط را اضافه میکنیم:
تابع include() به Django میگوید: URLهای مربوط به این قسمت را از فایل URL مشخصشده دریافت کن. به این ترتیب، به جای اینکه تمام URLهای پروژه را در config/urls.py بنویسیم، میتوانیم URLهای هر App را در فایل جداگانه خودش مدیریت کنیم.
در URLهایی که ایجاد کردیم، از گزینهای به نام name استفاده کردیم. قسمت name یک نام مشخص برای URL تعیین میکند. دلیل استفاده از Named URL این است که در قسمتهای مختلف پروژه، به جای اینکه مستقیماً مسیر URL را بنویسیم، میتوانیم از نام آن استفاده کنیم.این موضوع در ادامه دوره، مخصوصاً هنگام ساخت Templateها و لینکهای سایت، اهمیت زیادی پیدا میکند.
سرور توسعه Django را اجرا میکنیم:
توجه : فراموش نکنید که باید ابتدا محیط مجازی را فعال کنید. در درسهای گذشته به طور کامل آن را آموزش دادهایم.
سپس مرورگر را باز کرده و وارد آدرس زیر میشویم:
اگر همه چیز درست باشد، باید این تصویر را ببینیم:
صفحات بیشتری را میتوانید به همین ترتیب بسازید. به کدهای نهایی پروژه بعد از ساخته شدن صفحه اصلی، صفحه دوره ها و صفحه درباره ما توجه کنید.
اکنون سه صفحه داریم:
| URL | View | نتیجه |
|---|---|---|
/ | home | صفحه اصلی |
/courses/ | courses | دورههای آموزشی |
/about/ | about | درباره ما |
در Django معمولاً URLها را به صورت زیر تعریف میکنیم:
یعنی URL:
وجود / در انتهای URL در پروژههای Django رایج است. پس بهتر است از همان ابتدا یک الگوی ثابت داشته باشیم:
request نماینده درخواست ارسالشده از طرف کاربر است. این شیء اطلاعات مربوط به درخواست کاربر را در اختیار View قرار میدهد. در ادامه دوره، با request کارهای بیشتری انجام خواهیم داد؛ مثلاً: دریافت اطلاعات فرم کاربر
گاهی ممکن است بخواهیم کاربر را به URL دیگری هدایت کنیم. برای این کار از Redirect استفاده میکنیم. در Django میتوانیم از تابع redirect() استفاده کنیم:
from django.shortcuts import redirectdef old_courses(request):
return redirect('courses')در این مثال اگر کاربر بخواهد به صفحه old_courses وارد شود، Django او را به URLای که نام آن courses است هدایت میکند. Redirect در پروژههای واقعی کاربردهای زیادی دارد. مثلاً زمانی که یک URL قدیمی را به URL جدید منتقل میکنیم یا بعد از انجام یک عملیات، کاربر را به صفحه دیگری میفرستیم.
صفحه اصلی محصولات/ خدمات/ دورههای آموزشی درباره ما تماس با ما بلاگ
در درس بعدی، همین صفحات ساده را از حالت متنی خارج میکنیم و Template و HTML را وارد پروژه میکنیم و رابط کاربری میسازیم.
رفتن به درس بعدیدیتابیس Database و مدل Model در جنگو از درس قبل به خاطر دارید که آطلاعات دورهها به صورت ثابت داخل
طراحی قالب سایت با HTML، CSS و Tailwind CSS تا اینجا با ساختار اصلی Django، URL، View و Template آشنا
Template و رابط کاربری در Django در سه درس قبلی، با ساخت پروژه، ساختار Django، URL و View آشنا شدیم.
URL و View در جنگو در درسهای قبل با Django آشنا شدیم، محیط مجازی را ساختیم، Django را نصب کردیم
ساختار Project و App در Django در درس قبل با Django آشنا شدیم، محیط مجازی ساختیم، Django را نصب کردیم
شروع کار با 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) یکی از معتبرترین آزمونهای ارزیابی مهارت زبان انگلیسی
آزمون پلاس مرجع آموزش برنامهنویسی، هوش مصنوعی، شبکه، نمونه سؤالات کنکورهای کامپیوتر، آزمونهای زبان دکتری و مدارک بینالمللی فناوری اطلاعات است. با ارائه آموزشهای تخصصی، منابع آموزشی و راهنمای آزمونها، به دانشجویان و متخصصان کمک میکنیم تا مهارتهای خود را توسعه داده و در مسیر موفقیت تحصیلی و شغلی گام بردارند.