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페이지를 보여준다