-
[4월 5주차-4/29~30]🌐 Django로 나만의 로그인 + 이미지 북마크 웹사이트 만들기 (feat. 구글 소셜 로그인까지)Why Not SW CAMP 5기/수업 기록 2025. 4. 30. 17:02
안녕하세요! 이번 포스팅에서는 Django 프레임워크를 활용해 다음과 같은 기능을 가진 웹 애플리케이션을 만들어보겠습니다.
- ✅ 사용자 로그인 / 로그아웃 / 회원가입 / 프로필 수정
- ✅ 이메일 중복 방지
- ✅ 구글 소셜 로그인 연동
- ✅ 이미지 북마크 기능 (URL로 이미지 저장)
- ✅ 메시지 프레임워크 활용
🔧 1. 프로젝트 초기 세팅
requirements.txt
asgiref==3.5.2 Django~=4.1.0 Pillow sqlparse==0.4.2설치
pip install -r requirements.txt # 에러가 난다면 python -m pip install --upgrade pip python -m pip install Pillow pip install wheel프로젝트 생성
django-admin startproject bookmarks . django-admin startapp accountsettings.py에 앱 등록:
INSTALLED_APPS = [ 'account.apps.AccountConfig', ... ]
👥 2. 로그인 / 회원가입 / 프로필 관리 기능 만들기
✅ LoginForm 정의 (forms.py)
class LoginForm(forms.Form): username = forms.CharField() password = forms.CharField(widget=forms.PasswordInput)✅ 로그인 뷰 만들기 (views.py)
from django.contrib.auth import authenticate, login def user_login(request): ...✅ 로그인 URL 설정
account/urls.py
urlpatterns = [ path('login/', views.user_login, name='login'), ]bookmarks/urls.py
urlpatterns = [ path('admin/', admin.site.urls), path('account/', include('account.urls')), ]
🧑💼 3. 사용자 등록 및 프로필 관리
✅ 모델 확장
models.py
class Profile(models.Model): ...✅ 회원가입 폼
class UserRegistrationForm(forms.ModelForm): ...✅ 회원가입 뷰 (views.py)
def register(request): ...✅ 프로필 수정 뷰
@login_required def edit(request): ...
🔐 4. 장고 기본 로그인/로그아웃/비밀번호 변경 템플릿
다음 HTML 파일들을 생성해 주세요:
- registration/login.html
- registration/password_change_form.html
- registration/password_reset_form.html 등
💌 5. 이메일 중복 방지 및 콘솔 메일 설정
forms.py와 settings.py에서 다음을 추가합니다:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
🧠 6. 커스텀 인증 백엔드 (이메일 로그인)
authentication.py
class EmailAuthBackend: ...settings.py에 추가:
AUTHENTICATION_BACKENDS = [ 'account.authentication.EmailAuthBackend', 'django.contrib.auth.backends.ModelBackend', ]
🌍 7. 구글 소셜 로그인 연동
- 구글 클라우드 → OAuth 동의 화면 설정
- 리디렉션 URI:
- http://localhost:8000/social-auth/complete/google-oauth2/
- settings.py에 키 추가:
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'YOUR_CLIENT_ID' SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'YOUR_SECRET'- 로그인 버튼 추가:
<a href="{% url 'social:begin' 'google-oauth2' %}">Google로 로그인</a>
🖼️ 8. 이미지 북마크 앱 만들기
앱 생성 및 설정
django-admin startapp imagessettings.py에 등록:
INSTALLED_APPS = [ 'images.apps.ImagesConfig', ... ]모델 정의 (models.py)
class Image(models.Model): ...폼 정의 (forms.py)
class ImageCreateForm(forms.ModelForm): ...이미지 URL에서 직접 이미지를 다운로드해서 저장!
뷰 정의 (views.py)
@login_required def image_create(request): ...
✅ 마무리
이제 로그인/회원가입부터 소셜 로그인, 이미지 북마크까지 다 되는 웹사이트 완성!
추가로 추천 기능이나 댓글, 좋아요 등 기능을 계속 확장할 수 있어요.'Why Not SW CAMP 5기 > 수업 기록' 카테고리의 다른 글
[5월 1주차-5/8]🎈 Python으로 웹 대시보드 만들기- Streamlit (1) 2025.05.08 [5월 1주차-5/7]🧩 Django로 RESTful API 만들기 & 실시간 채팅 앱 구축 (Channels 활용) (0) 2025.05.07 [4월 5주차-4/28~29]🎯 Django 블로그 프로젝트 (0) 2025.04.29 [4월 4주차-4/24]RubiBlog: Django + Amazon Lightsail 배포기 (0) 2025.04.24 [4월 4주차-4/22]📝 Django로 블로그 만들기 – 글/댓글/썸네일까지 (0) 2025.04.22