ㅇㅅㅇ

[django] 장고 시작

kinggoddino 2024. 9. 12.

0. 깃 클론

git clone <url> .

빈 폴더여야만 . 이 가능하다

 

 

1. 가상환경 만들기

(클론을 안한다면)반드시 빈 폴더 열고 바로 가상환경부터 만들기

어쨌든 인터프리터 설정하기 전에만 가상환경 생성하면 됨.

python -m venv venv   # 가상환경 생성
source venv/Scripts/activate   # 가상환경 활성화

 

 

2. 인터프리터 설정

인터프리터를 '기존경로' (==내가 방금 만든 가상환경) 로 설정

 

 

3-1. 터미널 - 필요한 패키지 설치

pip install django==4.2
pip install djangorestframework
pip install djangorestframework-simplejwt
pip install django-seed
pip install black   # 이건그냥 코드정렬 이쁘게 해주는거

얘는 설정에서 black 검색 후 '저장 시' 적용 체크박스를 활성화 해줘야된다.

 

3-2. settings.py - 앱 등록

INSTALLED_APPS = [
    # third-party
    "django_seed",
    "rest_framework",
    "rest_framework_simplejwt.token_blacklist",
]

 

+ 난 한국어가 좋으니까

LANGUAGE_CODE = "ko-kr"

 

3-3. 패키지를 설치하고 나면 반드시 fix를 해준다

pip freeze > requirements.txt

 

 

4-1. 터미널 - 프젝시작

django-admin startproject <project_name> .
python manage.py startapp <app_name>

 

4-2. settings.py - 앱 등록

INSTALLED_APPS = [
    # local
    "appname",
]

 

 

5. url 경로지정

5-1. pjt/urls.py

from django.urls import include

urlpatterns = [
    path("api/appname/", include("appname.urls")),
]

 

5-2. app/urls.py

urlpatterns = []

 

 

6. 회원가입

6-1. accounts/models.py

from django.db import models
from django.contrib.auth.models import AbstractUser

class CustomUser(AbstractUser):
    GENDER_CHOICES = [
        ("M", "남자"),
        ("F", "여자"),
        ("O", "다른거"),
    ]
    email = models.EmailField(unique=True)
    name = models.CharField(max_length=10)
    nickname = models.CharField(max_length=10)
    birthday = models.DateField()
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, blank=True)
    bio = models.TextField(blank=True)

    def __str__(self):
        return self.username

 

settings.py

# Custom User Model
AUTH_USER_MODEL = "accounts.CustomUser"

반드시 세팅에 커스텀 유저를 추가해준 후에 마이그레이션을 해야함

python manage.py makemigrations
python manage.py migrate

 

 

6-2. accounts/urls.py

from django.urls import path
from .views import SignupView

urlpatterns = [
    path("signup/", SignupView.as_view(), name="signup"),
]

 

6-3. accounts/views.py

from rest_framework import generics
from .serializers import SignupSerializer
class SignupView(generics.CreateAPIView):
    serializer_class = SignupSerializer

 

6-4. accounts/serializers.py

from rest_framework import serializers
from .models import CustomUser


class SignupSerializer(serializers.ModelSerializer):
    class Meta:
        model = CustomUser
        fields = ["username", "name", "password", "nickname", "bio", "email"]

    def create(self, validated_data):
        user = super().create(validated_data)
        user.set_password(validated_data["password"])  # 비밀번호 해시화
        user.save()
        return user

 

7. 깃에 푸시

git add .

이때 warning 이 발생할 수 있는데, 그럴때는

git status

이거 한번 해줌

git commit
feature: 간단한 설명

- 자세한 설명들

그 후에 :wq 로 나가준다.

git push origin <branch_name>

원격 저장소에 푸시해주면 pull request 가 생겨있음.

 

'ㅇㅅㅇ' 카테고리의 다른 글

[git] 폴더 배열 수정하고 싶어  (0) 2024.09.12
09.03. 라디오  (0) 2024.09.03
08.30. 라디오  (1) 2024.08.30
장고디버그툴바  (0) 2024.08.29
파이참 - Ctrl + 휠로 글자 크기 컨트롤  (0) 2024.07.15