본문 바로가기
카테고리 없음

Django 기본 setting

by Byeong 2024. 4. 23.

Django를 이용해어 기본적인 setting을 반복적으로 학습하여 손에 익히려 한다. 

완전하게 내 걸로 만들기 전까지 내용을 정리하려고 한다.

 

 

 

1. 가상환경 설정 

 

가상환경 파일을 terminer에서 만들어준다. 

python -m venv venv

 

가상환경 활성화 

source venv/bin/activate

 

 

2. django 설치 

pip install django=='version'

 

#협업을 위해 파일 공유 

pip freeze > requirements.txt

설치시에는 
pip install -r requirements.txt

 

 

3. Django Project 

django-admin startproject <name> .

현제 파일에 프로젝트 생성 

 

4. App

python manage.py startapp <name>

 

app을 생성하면 등록을 해야 한다. 

project에 있는 settings.py 에 가서 INSTALLED_APP에 등록을 해준다.

 

그리고 urls.py에서 urlpatterns에 include를 통해 연결한다.

 

만든 app에 urls.py파일을 만들어 app을 분리 한다.

from django.urls import path

app_name = "name"
urlpatterns = []

그리고 꼭 이름을 설정해 주자 

 

 

5. User Model

 

기본 유저를 적용한다고 해도 User는 적용하자 

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

# Create your models here.
class User(AbstractUser):
    pass

 

settings.py에 추가

AUTH_USER_MODEL = 'accounts.User' 
# STATIC_URL 밑에다가 추가 권장

 

admin.py에 추가

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User

admin.site.register(User, UserAdmin)

 

다른 곳에서 model을 사용 시

get_user_model() 를 사용해서 받기

 


 

6. Templates 

 

templates 파일을 만들어 준다.

그 안에 app 안쪽에 있는 templates에는

templates/<app name>/

이런 식으로 파일을 만들어 준다.

 

그리고 base templates를 만든다면 settings에서 TEMPLATES에서

'DIRS': [BASE_DIR / "templates"],

 를 추가하자

 

 

7. models.py

 

model은 class 형식으로 만들고

from django.db import models

class Model name(models.Model):
    name = models.Fieldname()

이런 식으로 만든다. 

 

Field 종류는 https://docs.djangoproject.com/en/4.2/ref/models/fields/#field-types에서 확인하자 

 

입력한 데이터를 적용하려면

python manage.py makemigrations

python manage.py migrate

 

 

8.  foms.py 

 우리의 반복을 줄여줄 foms class이다.

from django import forms
from 원하는 app의 model을 가져와 import 해서 사용한다

class foms name(forms.ModelForm):
	class Meta:
        model = Article
        fields = "__all__" 보여주고 싶은 form
        # exclude = ["title"] 가리고 싶은 form
        
velws.py 에서 사용
form = Form name (request.POST) # form에 request.POST에 있는 데이터 채워
  if form.is_valid(): # form 형식에 맞으면

 

 


 

get_object_or_404() 잘못된 페이지로 갈시 404페이지를 보여준다