دیتابیس Database و مدل Model در Django
دیتابیس Database و مدل Model در جنگو از درس قبل به خاطر دارید که آطلاعات دورهها به صورت ثابت داخل
تا اینجا با ساختار اصلی Django، URL، View و Template آشنا شدیم و چند صفحه ساده برای پروژه آزمون پلاس ساختیم. در این بخش قرار است ظاهر سایت را به شکل حرفهای طراحی کنیم. در پایان این بخش، سایت آزمون پلاس یک قالب کامل خواهد داشت که شامل قسمتهای هدر، فوتر و … است و صفحات مختلف سایت همه میتوانند از این قالب اصلی استفاده کنند.
در این بخش از سه فناوری استفاده میکنیم که در ادامه به توضیح هریک خواهیم پرداخت:
HTML زبان اصلی ساختار صفحات وب است و مشخص میکند که هر قسمت از صفحه چه نقشی دارد. برای مثال:
<h1>آزمون پلاس</h1>
<p>مرجع آموزش و آزمون</p>
<a href="#">مشاهده دورهها</a>در این مثال h1 عنوان اصلی، p یک پاراگراف و a یک لینک است.
HTML مسئول تعیین ساختار و محتوای صفحه است. اما به تنهایی ظاهر حرفهای ایجاد نمیکند. برای طراحی ظاهر، از CSS استفاده میکنیم.
CSS برای طراحی ظاهر صفحات وب ساخته شده با HTML استفاده میشود. با CSS میتوانیم مواردی مانند اینها را کنترل کنیم:
برای مثال:
h1 {
color: red;
font-size: 32px;
}این کد رنگ عنوان را قرمز و اندازه آن را ۳۲ پیکسل میکند.
Tailwind CSS یک CSS Framework است که مجموعهای از کلاسهای آماده برای طراحی رابط کاربری در اختیار ما قرار میدهد. در CSS معمولی ممکن است بنویسیم:
.title {
color: red;
font-size: 32px;
font-weight: bold;
}و سپس:
<h1 class="title">
آزمون پلاس
</h1>اما در Tailwind میتوانیم بسیاری از این ویژگیها را مستقیماً با کلاسهای آماده روی عنصر HTML قرار دهیم:
<h1 class="text-3xl font-bold text-red-600">
آزمون پلاس
</h1>در این مثال:
text-3xl → اندازه متن
font-bold → ضخیم کردن متن
text-red-600 → رنگ متنبه این کلاسها Utility Classes گفته میشود.
Tailwind به ما اجازه میدهد رابط کاربری را سریعتر طراحی کنیم و بسیاری از ویژگیهای CSS را مستقیماً در HTML کنترل کنیم. مزیت مهم دیگر این است که برای طراحی قسمتهای مختلف سایت میتوانیم از ترکیب همین Utility Classها استفاده کنیم.
Tailwind هنگام ساخت CSS، فایلهای HTML و Template را بررسی میکند و CSS مربوط به کلاسهایی را که در پروژه استفاده شدهاند تولید میکند. در این پروژه از Tailwind CSS نسخه ۴ استفاده میکنیم.
از آنجا که صفحات سایت ما Django Template هستند، بهترین محل برای قرار دادن Tailwind، فایل base.html است. فایل base.html را باز کنید. در قسمت <head>، اسکریپت Tailwind را قرار دهید:
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>در نتیجه ساختار فعلی base.html میتواند به شکل زیر باشد:
{% block title %}
آزمون پلاس
{% endblock %}
{% block content %}
{% endblock %}
از آنجا که تمام صفحات سایت از base.html ارثبری میکنند، Tailwind نیز در تمام این صفحات در دسترس خواهد بود.
برای اطمینان از اینکه Tailwind بهدرستی به پروژه متصل شده است، فایل home.html را باز کنید. محتوای آن را فعلاً به شکل زیر قرار دهید:
{% extends 'base.html' %}
{% block title %}
صفحه اصلی
{% endblock %}
{% block content %}
آزمون پلاس
{% endblock %}
اگر صفحه اصلی را در مرورگر باز کنید، عبارت «آزمون پلاس» باید به صورت بزرگ، ضخیم و قرمز نمایش داده شود.
در این مثال از سه کلاس Tailwind استفاده کردهایم. text-4xl اندازه متن را تعیین میکند. font-bold متن را ضخیم میکند. و text-red-600 رنگ متن را تعیین میکند. این کلاسها نمونهای از Utility Classهای Tailwind هستند.
حالا طراحی واقعی سایت آزمون پلاس را شروع میکنیم. اولین بخش سایت، قسمت بالای صفحه است. در این قسمت دو مفهوم را از هم جدا میکنیم.
Header : کل ناحیه بالای سایت است.
Navbar : منوی اصلی سایت است که درون Header قرار میگیرد.
ساختار موردنظر ما:
Header
└── Navbar
├── لوگو
├── صفحه اصلی
├── دورهها
├── درباره ما
└── ورود / ثبتنام
در home.html، داخل block content، با نوشتن کدهای زیر یک Navbar ایجاد میکنیم :
در اینجا چند کلاس جدید داریم.
flex عناصر را در کنار یکدیگر قرار میدهد.
items-center عناصر را در راستای عمودی وسطچین میکند.
justify-between بین بخشهای مختلف فضای مناسبی ایجاد میکند.
gap-8 بین آیتمهای منو فاصله ایجاد میکند.
px-6 فاصله افقی ایجاد میکند.
py-4 فاصله عمودی ایجاد میکند.
rounded-lg گوشههای عنصر را گرد میکند.
hover:bg-red-700 وقتی نشانگر ماوس روی دکمه قرار بگیرد، رنگ آن تغییر میکند.
بعد از Navbar، مهمترین قسمت صفحه اصلی، Hero Section است. Hero اولین بخش اصلی است که کاربر بعد از ورود به صفحه میبیند. کد زیر را در home.html، داخل block content، در زیر کدهای Header مینویسیم:
فایلهای تکمیل شده پروژه را میتوانید از انتهای همین درس دانلود کنید.
یادگیری را حرفهای شروع کنید
آموزش برنامهنویسی و مهارتهای تخصصی با محتوای کاربردی و پروژهمحور
مشاهده دورهها
در اینجا از یک کلاس مهم دیگر استفاده کردهایم:
md:text-5xlحرف md نشاندهنده یک Breakpoint است. یعنی در صفحههای بزرگتر، اندازه عنوان افزایش پیدا میکند. این یکی از پایههای طراحی Responsive در Tailwind است. ریسپانسیو یا واکنشگرا بودن یک قالب سایت، یعنی نمایش درست تمام آیتمهای موجود در یک صفحه وب، متناسب با اندازه و ابعاد دستگاههای مختلف مانند لپتاپ، گوشی موبایل، تبلت و … .
بعد از Hero، یک بخش کوتاه برای معرفی سایت قرار میدهیم:
آموزش برای رشد واقعی
آزمون پلاس بستری برای یادگیری، تمرین و ارزیابی مهارتهاست.
هدف ما ارائه محتوای آموزشی کاربردی و قابل استفاده در مسیر یادگیری است.
در این بخش از max-w-3xl برای محدود کردن عرض متن استفاده کردهایم. محدود کردن عرض متن باعث میشود خطوط بیش از حد طولانی نشوند و خوانایی افزایش پیدا کند.
میخواهیم برای نمایش دورههای آموزشی از کارت استفاده کنیم. برای قرار دادن کارتها در کنار یکدیگر از Grid استفاده میکنیم.
دورههای آموزشی
دوره مناسب خود را انتخاب کنید.
به این کد توجه کنید:
در این کد grid عنصر را به یک Grid تبدیل میکند و gap-8 بین کارتها فاصله ایجاد میکند. md:grid-cols-2 در اندازههای متوسط (تبلت)، کارتها را در دو ستون قرار میدهد. lg:grid-cols-3 در صفحههای بزرگ (مانیتور دسکتاپ)، کارتها را در سه ستون قرار میدهد. و در نتیجه یک ساختار Responsive خواهیم داشت و این یکی از دلایل مهم استفاده از Tailwind برای طراحی رابط کاربری است.
حالا سه ویژگی اصلی سایت را نمایش میدهیم:
چرا آزمون پلاس؟
آموزش کاربردی
تمرکز بر یادگیری مفاهیم و استفاده از آنها در پروژههای واقعی.
تمرین و آزمون
فرصت تمرین و ارزیابی برای سنجش میزان یادگیری.
مسیر یادگیری مشخص
محتوای آموزشی منظم برای حرکت مرحلهبهمرحله در مسیر یادگیری.
در انتهای محتوای اصلی، یک بخش دعوت به اقدام قرار میدهیم. CTA مخفف عبارت Call To Action است. هدف این بخش این است که کاربر را به انجام یک اقدام مشخص دعوت کند.
آخرین قسمت قالب اصلی سایت، Footer است.
یکی از ویژگیهای مهم قالب حرفهای، نمایش صحیح آن در اندازههای مختلف صفحه است. Tailwind برای این کار از Breakpointها استفاده میکند. برای مثال:
یعنی اگر اندازه صفحه نمایش کوچک است (مانند موبایل) در هر سطر فقط 1 آیتم (1 ستون)، اگر صفحه متوسط است (مانند تبلت) در هر سطر 2 آیتم (2ستون) و اگر صفحه بزرگ است (دسکتاپ) 3 ستون نمایش بده. بنابر این لازم نیست برای هر اندازه صفحه یک طراحی کاملا جداگانه ایجاد کنیم.
فایلهای تکمیل شده پروژه (تا به این قسمت) را میتوانید از طریق لینک زیر دانلود کنید.
در این مرحله ظاهر اصلی سایت را ایجاد کردیم، اما اطلاعات دورهها هنوز ثابت هستند. در درس بعدی با Model و Database کار میکنیم و این اطلاعات دیگر به صورت دستی داخل 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) یکی از معتبرترین آزمونهای ارزیابی مهارت زبان انگلیسی
آزمون پلاس مرجع آموزش برنامهنویسی، هوش مصنوعی، شبکه، نمونه سؤالات کنکورهای کامپیوتر، آزمونهای زبان دکتری و مدارک بینالمللی فناوری اطلاعات است. با ارائه آموزشهای تخصصی، منابع آموزشی و راهنمای آزمونها، به دانشجویان و متخصصان کمک میکنیم تا مهارتهای خود را توسعه داده و در مسیر موفقیت تحصیلی و شغلی گام بردارند.