본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

Portfolio

S brain - front - Scaffolding - run.bat 설정하기

매번 venv 를 입력하고 requirements를 실행하고 migrate후 runserver를 실행해야할까?

python -m venv .venv
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

 

 

실행자는 코드를 받고, 

.\run.bat  만 수행하면 되도록 세팅해보자. 

 

 

windows에서 Django 개발 서버를 한번에 실행하기 위한 .bat 배치 파일

@echo off 실행되는 명령어를 계속 출력하지 않게해 깔끔한 터미널을 구성하기로한다. 

chcp 65001 콘솔을 utf-8로 설정해 한글이 깨지는것을 줄인다. 

cd /d  %~dp0은 현재 .bat 파일이 위치한 폴더로 이동하도록 한다. 

where python >nul 2>nul 파이썬이 path에 등록되어있는지를 확인하고 없으면 error를 표시한다. 

>nul는 정상출력을 버리는것이고 2>nul는 표준 에러를 버리는것.  에러시 깔끔하게 안내문구 출력.

venv 가 없다면 가상환경을 생성한다. 

패키지 설치, requirements.txt 포함. 

데이터베이스 준비 migrate

서버실행 manage.py runserver.

pause를 추가해 서버를 종료했을때 cmd 창이 바로 닫히지않고 결과를 확인 할 수 있도록 한다. 에러시 오류 메세지 확인할 시간 주기.

@echo off
chcp 65001 > nul
REM Second Brain 개발 서버 실행 (Windows)
REM 가상환경 생성 -> 패키지 설치 -> DB 준비 -> 서버 실행 까지 한 번에 처리한다.

cd /d "%~dp0"

where python >nul 2>nul
if errorlevel 1 (
  echo [ERROR] Python 이 설치되어 있지 않거나 PATH 에 없습니다.
  echo         https://www.python.org/downloads/windows/ 에서 설치 후
  echo         "Add python.exe to PATH" 를 체크하고 터미널을 새로 열어주세요.
  pause
  exit /b 1
)

if not exist ".venv" (
  echo [1/4] 가상환경 생성 중...
  python -m venv .venv || (echo [ERROR] 가상환경 생성 실패 & pause & exit /b 1)
)

echo [2/4] 패키지 설치 중...
call ".venv\Scripts\python.exe" -m pip install --upgrade pip >nul
call ".venv\Scripts\python.exe" -m pip install -r requirements.txt || (echo [ERROR] 패키지 설치 실패 & pause & exit /b 1)

echo [3/4] 데이터베이스 준비 중...
call ".venv\Scripts\python.exe" manage.py migrate || (echo [ERROR] migrate 실패 & pause & exit /b 1)

echo [4/4] 서버 실행: http://127.0.0.1:8000/login/  (종료: Ctrl + C)
call ".venv\Scripts\python.exe" manage.py runserver
pause