[Django] 장고 명령어 정리(치트시트) - 1
Windows 기준
- django-admin startproject {project 명}
=> 프로젝트 폴더 및 manage.py 생성
- (Git 설정) .gitignore 설정 체크
=> gitignore.io에 들어가서 Django 검색 입력 후 필요에 따라 복붙하고 이용.
=> git add .gitignore로 .gitignore까지 stage에 당연히 올려줘야한다.
- python {project 폴더 명}\manage.py check
=> 이상이 없는지 system check 진행
- python {project 폴더 명}\manage.py runserver
=> 서버실행 ( 서버는 로컬호스트로, default is 127.0.0.1:8000 )
- python {project 폴더 명}\manage.py startapp {app이름} {디렉토리 명}
=> 디렉토리 명에 . 하나만 찍게 되면 현재 cmd에 찍혀있는 dir에서 app폴더들이 만들어짐
- {프로젝트 폴더명}\{프로젝트 폴더명}\settings.py에 들어가서 INSTALLED_APPS list에
startapp으로 추가한 app이름이 추가되어있는지 확인하기.
=> {app 폴더명}\apps.py의 Postsconfig class name도 일치시켜줬는지 확인하기.
=> settings.py의 TIME_ZONE(Asia/Seoul), LANGUAGE_CODE(ko) 변경도 이때 해주면 좋음
- manage.py에 import site 및 site.addsitedir(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) 추가
=> 이후 모델 설계 등.. 할 일 진행하기.
[Django] migration에 대해 알아보자
django 공식 문서보다 이해하기 쉬운 것 같아 위키피디아에서 model의 정의를 가져왔다. django에서 model은 데이터에 관한 정보를 담는다. 데이터에 대한 접근, 검증, 작동과 데이터 사이의 관계를 정
velog.io
django에서 모델을 만들고 해당 변경 사항을 DB에 적용하려고 할 때, migration을 사용한다.
migration에 대한 명령어는 다음과 같다.
- python {project 폴더 명}\manage.py showmigrations
=> 존재하는 model들에 대한 migrations 확인
- python {project 폴더 명}\manage.py makemigrations
=> 변경사항이 있는 모델에 대하여 새로운 migration을 만들어냄.
- python {project 폴더 명}\manage.py migrate
=> DB에 migration 내용들을 동기화시키는 명령어
- python {project 폴더 명}\manage.py shell
=> python 인터프리터 shell을 여는 명령어
=> pip install ipython로 설치해서 사용하면 파이썬 인터프리터 터미널 사용이 편리해짐
아래는 shell 명령어. {app 이름}.objects가 접두사
.all()
.create(parameters)
.values().first()
.all().get(id=n)
(위 명령어로 임의의 변수에 값을 담은 이후) .save()
이후 템플릿 추가 및 views.py에서 함수로 뷰를 만들어 줄 수 있음.
아래처럼.
# views.py on apps
from django.shortcuts import render
def hello_world(request, *args, **kwargs):
return render(request, "{템플릿 폴더 명}/hello_world.html")
app의 urls.py 생성후 urlpatterns list 작성 및 project folder의 urls.py수정하기.
# urls.py in project main
from django.urls import include, path
...
urlpatterns =[
path("admin/", admin.site.urls),
path("", include('{app의 urls경로}')),
]
# urls.py on app
from django.urls import path
from {.views.py} import {함수명}
urlpatterns = [
path("{원하는 경로}", 함수명),
]