본문 바로가기
IT/django

Python + Django 초기 설정을 위한 각 커맨트

by Goodea 2023. 4. 19.

django의 설치

python3 -m pip install django

 

 django의 설치후 프로젝트 생성

django-admin startproject <프로젝트명> /경로

 . 현재의 디렉토리에 모든 것을 설치

django-admin startproject newproject .

 

 django의 App 생성

django-admin startapp <앱 이름>

django-admin startaop newapp

 

 django의 실행

python3 manage.py runserver <PORT번호>

포트 번호를 생략시 디폴트 포트는 8080

python3 manage.py runserver 8888

 

 django와 mysql 연동을 위한 플러그인 설치

pip3 install mysqlclient

django의 4.2 버전부터는 mysql8.0 이상의 버전만 연동이 가능한 것 같다. (이용중인 sql버전이 5.4버전이였기에 django의 4.1버전을 설치)

 

 django와 mysql 연동(mysql DB의 정보 가져오기→ Model)

python3 manage.py inspectdb --database 데이터베이스명

python3 manage.py inspectdb --database testdb

--database를 생략하면 settings.py에 정의되어있는 default 데이터베이스를 참조한다.

콘솔에서 출력된 model스크립트를 복사해 models.py에 붙여넣어 준다.

또는 아래와 같이 직접 models.py로 출력 가능하다.

 

 django와 mysql 연동(작성한 모델 정보를 기반으로 migrations파일을 작성 )

python3 manage.py makemigrations

 

 django와 mysql 연동(작성한 모델을 DB에 반영하기 )

작성된 model을 기반으로 mysql에 테이블을 반영한다.

python3 manage.py migrate

 

✔ CRUD

C(reate)

var 변수명 = ModelClaassNmae(모델컬럼명 = value, 모델컬럼명 = value)
변수명.save()

 

R(ead)

# 모든 데이터 읽오기
{modelClassName}.objects.all()

# 조건 붙여 읽어오기(AND)
{modelClassName}.objects.filter(컬럼명=조건, 컬럼명=조건, 컬럼명=조건)

# 조건 붙여 읽어오기(EXCLUDE)
{modelClassName}.objects.all().exclude(컬럼명=제외조건)
{modelClassName}.objects.filter(컬럼명=조건).exclude(컬럼명=제외조건)

# 조건 붙여 읽어오기(OR)
{modelClassName}.objects.filter(Q(컬럼명=조건1) | Q(컬럼명=조건2))

# order by desc
{modelClassName}.objects.filter(조건=???).order_by('컬럼명').reverse()

# count(오브젝트 갯수 확인)
{modelClassName}.objects.all().count()

 

ERROR

Error: That port is already in use. 발생했을때 

ps aux | grep -i manage

 

PID 목록을 확인 후 

root               457   0.0  0.0 408266960   3456   ??  Ss   12 623    0:05.95 /usr/libexec/nesessionmanager
root               334   0.0  0.0 408435056   4400   ??  Ss   12 623    0:06.43 /usr/libexec/kernelmanagerd
root           76011   0.0  0.0 408113264   1488 s002  S+    2:40PM   0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox -i manage
root           75688   0.0  0.1 409401184  21296 s002  T     2:25PM   0:01.36 /opt/homebrew/Cellar/python@3.11/3.11.4/Frameworks/Python.framework/Versions/3.11/Resources/Python.app/Contents/MacOS/Python manage.py runserver
root           75687   0.0  0.1 408400224   9648 s002  T     2:25PM   0:00.16 /opt/homebrew/Cellar/python@3.11/3.11.4/Frameworks/Python.framework/Versions/3.11/Resources/Python.app/Contents/MacOS/Python manage.py runserver

 

manage.py runserver 태스크를 kill

kill -9 75687

 

댓글