아래의 글 하단부분은 너무 전문적이고 어렵습니다. 이전에 본 유뷰트 동영상을 찾아 첨부하고 무료 부트스트랩을 다운로드하면 쉽게 Django 웹페이지를 만들 수 있다는 내용으로 다시 작성해주세요.
Bootstrap을 Django 프로젝트에 통합함으로써, 개발자는 백엔드 로직에 더 집중할 수 있으며 동시에 세련된 사용자 인터페이스를 빠르게 구현할 수 있습니다. 이는 특히 프로토타입 제작이나 소규모 프로젝트에서 매우 유용합니다.
Bootstrap을 이용하면 Django 웹페이지를 더 쉽고 빠르게 만들 수 있습니다12. Bootstrap의 주요 장점은 다음과 같습니다:
간편한 디자인 구현
반응형 웹 디자인
시간 절약
정적 파일 설정
템플릿 적용
base.html 템플릿에 Bootstrap CSS와 JS 파일을 추가합니다:
{% load static %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}{% endblock %}</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
{% block content %}
{% endblock %}
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container">
<a class="navbar-brand" href="/">My Site</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/about">About</a>
</li>
</ul>
</div>
</div>
</nav>
{% extends 'base.html' %}
{% block content %}
<div class="container mt-5">
<h1 class="mb-4">게시글 목록</h1>
<div class="row">
{% for post in posts %}
<div class="col-md-4 mb-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">{{ post.title }}</h5>
<p class="card-text">{{ post.content|truncatewords:30 }}</p>
<a href="{% url 'post_detail' post.id %}" class="btn btn-primary">자세히 보기</a>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
{% endblock %}
{% extends 'base.html' %}
{% block content %}
<div class="container mt-5">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h4 class="mb-0">로그인</h4>
</div>
<div class="card-body">
<form method="post">
{% csrf_token %}
<div class="mb-3">
<label for="username" class="form-label">아이디</label>
<input type="text" class="form-control" id="username" name="username">
</div>
<div class="mb-3">
<label for="password" class="form-label">비밀번호</label>
<input type="password" class="form-control" id="password" name="password">
</div>
<button type="submit" class="btn btn-primary">로그인</button>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
<div class="container">
<div class="row">
<!-- 큰 화면에서는 3개 칼럼, 중간 화면에서는 2개 칼럼, 작은 화면에서는 1개 칼럼 -->
<div class="col-lg-4 col-md-6 col-12">
<div class="card mb-4">
<div class="card-body">
<h5>Content 1</h5>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-12">
<div class="card mb-4">
<div class="card-body">
<h5>Content 2</h5>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-12">
<div class="card mb-4">
<div class="card-body">
<h5>Content 3</h5>
</div>
</div>
</div>
</div>
</div>
<!-- 마진 추가 -->
<div class="mt-5">위쪽 마진 5단위</div>
<div class="mb-3">아래쪽 마진 3단위</div>
<div class="ms-2">왼쪽 마진 2단위</div>
<div class="me-2">오른쪽 마진 2단위</div>
<!-- 패딩 추가 -->
<div class="p-3">모든 방향 패딩 3단위</div>
<div class="pt-2">위쪽 패딩 2단위</div>
<p class="text-primary">파란색 텍스트</p>
<p class="text-center">가운데 정렬</p>
<p class="fw-bold">굵은 텍스트</p>
<p class="text-truncate">긴 텍스트를 줄임표로 처리...</p>
# forms.py
from django import forms
class MyForm(forms.Form):
title = forms.CharField(
widget=forms.TextInput(attrs={'class': 'form-control'})
)
content = forms.CharField(
widget=forms.Textarea(attrs={'class': 'form-control'})
)
<form method="post">
{% csrf_token %}
{% for field in form %}
<div class="mb-3">
<label for="{{ field.id_for_label }}" class="form-label">
{{ field.label }}
</label>
{{ field }}
{% if field.errors %}
<div class="alert alert-danger mt-1">
{{ field.errors }}
</div>
{% endif %}
</div>
{% endfor %}
<button type="submit" class="btn btn-primary">제출</button>
</form>
이렇게 Bootstrap을 활용하면 깔끔하고 반응형인 웹페이지를 쉽게 만들 수 있습니다. Bootstrap의 다양한 컴포넌트와 유틸리티 클래스를 활용하면 디자인 작업 시간을 크게 줄일 수 있습니다.