مقدمه
به فصل پایانی این دوره، «استایلدهی و استقرار»، خوش آمدید! تاکنون، ما بر روی ساختار و عملکرد
اپلیکیشن Learning Log تمرکز کردهایم. در این فصل، ما ظاهر اپلیکیشن خود را بهبود خواهیم
داد تا از نظر بصری جذابتر و استفاده از آن سادهتر شود. سپس، آن را بر روی یک سرور زنده مستقر
خواهیم کرد تا برای عموم قابل دسترس باشد.
برای استایلدهی سریع و حرفهای، ما از یک فریمورک محبوب CSS به نام Bootstrap استفاده
خواهیم کرد.
استفاده از Bootstrap
Bootstrap مجموعهای از کلاسهای CSS و کامپوننتهای جاوااسکریپت از پیش آماده شده است که به
ما اجازه میدهد تا به سرعت رابطهای کاربری زیبا و واکنشگرا (responsive) بسازیم. برای استفاده از
آن، ما تمپلیت پایه خود (base.html) را طوری تغییر میدهیم که فایلهای CSS و JS مربوط به
Bootstrap را از یک CDN (Content Delivery Network) بارگذاری کند.
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Learning Log</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="..." crossorigin="anonymous">
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="..." crossorigin="anonymous"></script>
</body>
</html>
ما لینک فایل CSS را در <head> و تگ <script> مربوط به جاوااسکریپت را در انتهای
<body> قرار میدهیم.
استایلدهی به تمپلیت پایه
اکنون که Bootstrap را اضافه کردهایم، میتوانیم با استفاده از کلاسهای CSS آن، یک نوار ناوبری
(navbar) زیبا و یک کانتینر اصلی برای محتوای صفحه خود بسازیم.
base.html
<nav class="navbar navbar-expand-md navbar-dark bg-dark mb-4 border">
<div class="container-fluid">
<a class="navbar-brand" href="{% url 'learning_logs:index' %}">
Learning Log</a>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" href="{% url 'learning_logs:topics' %}">
Topics</a></li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-md-0">
{% if user.is_authenticated %}
<li class="nav-item">
<span class="navbar-text me-2">Hello, {{ user.username }}.</span>
</li>
{% else %}
<li class="nav-item">
<a class="nav-link" href="{% url 'users:register' %}">Register</a>
</li>
{% endif %}
</ul>
</div>
</div>
</nav>
<main class="container">
<div class="pb-2 mb-2 border-bottom">
{% block page_header %}{% endblock page_header %}
</div>
<div>
{% block content %}{% endblock content %}
</div>
</main>
ما از کلاسهای navbar، container، nav-link و غیره برای استایلدهی به اجزای مختلف صفحه استفاده
کردهایم. همچنین یک بلاک جدید به نام page_header برای نمایش عنوان هر صفحه اضافه کردهایم.
بهروزرسانی تمپلیتهای فرزند
در نهایت، تمپلیتهای فرزند (مانند index.html و topics.html) را بهروزرسانی میکنیم تا از بلاک
page_header جدید استفاده کنند.
topics.html
{% extends "learning_logs/base.html" %}
{% block page_header %}
<h1>Topics</h1>
{% endblock page_header %}
{% block content %}
{% endblock content %}
با این تغییرات، اپلیکیشن ما اکنون یک ظاهر تمیز، مدرن و حرفهای دارد.
در این درس، ما با استفاده از فریمورک Bootstrap، ظاهر اپلیکیشن وب خود را به طور کامل بازسازی کردیم.
با استفاده از کلاسهای CSS از پیش آماده شده، توانستیم به سرعت یک رابط کاربری زیبا و واکنشگرا ایجاد کنیم. در
درس پایانی این دوره، به سراغ «استقرار اپلیکیشن وب» خواهیم رفت و یاد میگیریم که چگونه پروژه Django خود را
روی یک سرور زنده مانند Heroku مستقر کرده و آن را در دسترس تمام دنیا قرار دهیم.