1.  Project 폴더 / 앱 설정

 

1. 프로젝트 폴더 생성 과 동시에 manage.py 파일을 만듬.

django-admin startproject  <project 이름> . (뒤에 . 찍어야 현재 폴더 위치에서 생성됨)

2. 그 프로젝트 안에 구성할 앱들 만들기

python manage.py startapp <app 이름>

 

 

2.  가상환경 설정 

메인폴더에서 

python -m venv <env name> # 가상환경



(Mac) source venv/bin/activate

(Win) source vent/Scripts/activate

 

Command + Shift + p > 인터프리터 선택 > 가상환경 선택

venv 가 안떠있으면 터미널 껏다 켜기

READ.md , .gitignore, requirements 생성

pip install django==3.2.16 django_extensions

pip list  # 상태확인

touch README.md .gitignore # READ, gitignore 사전작업

pip freeze > requirements.txt  # 협업 세팅환경용


# 3.2.16버전이 롱텀이라 안전성높음

 

 

3. 뼈대잡기 

사용할 html의 뼈대를 잡음

 

1. 공통적으로 활용할 html 생성

Project > templates > base.html or navbar.html 등등 (include용 메인 html)

install -Dv /dev/null template/base.html

#   (mkdir templates >  touch templates/base.html을 한번에)

 

2. 앱에서 사용할 html 생성

Mkdir -p <app이름>/templates/<app이름>  # -p 는 templates 라는 상위폴더가 없어도 상위폴더까지 같이 생성해줌

cd <app이름>/templates/<app이름>  # cd로 최하단까지이동

touch **.html **2.html **3.html (사용할 html 쭉 나열하면 여러개 생성)

 

 

 

3. 기타 .py 파일 생성

# 다시 최상단 으로 돌아와서( 보통 cd .. 3번 하면됨)

Touch <app이름>/urls.py, forms.py 생성

4. 초기세팅

1. Project>settings에서 해야할 일

 Project > settings > app등록  

*

'django_extensions', # 추가해두면 나중에 python manage.py shell_plus 사용가능

 

 

 

 

 

 

Templates / dirs 등록 >  BASE_DIR / ‘templates’

 

 

(Project) > (App) > views.py > 함수생성

 

base.html > block > tab

 

2. Master urls.py 내용추가

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('<app이름>/', include('<app이름>.urls')),
]

 

3. app이름 >  urls.py

from django.urls import path
from . import views

app_name = '<앱이름>'

urlpatterns = [
    # <앱이름>/create/
    path('create/', views.create, name='create'),
    # <앱이름>/
    path('', views.index, name='index'),
    # <앱이름>/1/
    path('<int:student_pk>/', views.detail, name='detail'),
    # <앱이름>/1/update/
    path('<int:student_pk>/update/', views.update, name='update'),
    # <앱이름>/1/delete/
    path('<int:student_pk>/delete/', views.delete, name='delete'),
]

 

4. app이름 > views.py 세팅

함수정의 하기 

 

from django.shortcuts import render, redirect, get_object_or_404
from django.views.decorators.http import require_http_methods, require_safe, require_POST
from .models import Student
from .forms import StudentForm

@require_http_methods(['GET', 'POST'])
def create(request):
    pass
    
# CRUD에 맞는 필요함수 적기

 

 

4. 서버실행

Manage.py 있는 루트위치에서

python manage.py runserver 

# 나가기 Ctrl + C

 

5. DB 세팅

1. Model.py 작성

app > models.py  / 자바로 치면 DAO

from django.db import models

class Student(models.Model):
    name = forms.CharField(min_length=2, max_length=10)
    title = forms.CharField(min_length=2, max_length=20)

 

2. Forms.py 작성

app > forms.py

# 1. 유효성 체크 (validation check)
# 2. HTML 안에 인풋태그 만들기 귀찮
# 3. 저장할 때 request.POST에서 일일이 꺼내기 귀찮아서 forms.py 만들어서 관리
from django import forms
from .models import Student

class StudentForm(forms.ModelForm):
    name = forms.CharField(min_length=2, max_length=10)
    title = forms.CharField(min_length=2, max_length=20)
    
    class Meta:  # 이 클래스의 메타 데이터 저장용 
        model = Student
        # fields = ('name', 'title')
        fields = '__all__'

 

3. 서버시작

서버실행 (혹시 값이 바뀔면 다시 실행)

python manage.py makemigrations <app이름>

python manage.py migrate <app이름>

# 잘안되면
rm db.sqlite3 <앱이름>/migrations/0*
rm db.sqlite3 accounts/migrations/0* board/migrations/0*  
# 다 지우고다시

 

 

6. 꾸미기

pip install django-bootstrap-v5

# 장고 부트스트랩 추가
pip install django-bootstrap-v5

설명서

https://django-bootstrap-v5.readthedocs.io/en/latest/installation.html

 

+ Recent posts