환경 설정하기
2025. 3. 28. 14:37ㆍ개발 일지(웹소켓을 이용한 실시간 채팅)
uv 가상환경 실행
curl -LsSf https://astral.sh/uv/install.sh | sh
로 uv 설치uv init
로 프로젝트 초기화( pyproject.toml 생성 + 기본 설정)uv add fastapi
: .venv 가상환경에 fastapi 설치uv run python your_file_name
: .venv 가상환경 안에서 python 실행
django 설치하기
Django는 빠르게 변화하는 뉴스룸 환경에서 개발되었기 때문에 일반적인 웹 개발 작업을 빠르고 쉽게 수행할 수 있도록 설계되었습니다.
이 프로젝트는 협업을 할 계획이니 안전적인 4.2 버전에 그에 맞는 python 3.12를 사용한다.
uv add django==4.2.20
python -m django --version
: 장고 버전 확인
프로젝트 만들기
mkdir your_project
: 프로젝트 폴더를 만든다django-admin startproject mysite your_project
만들어진 폴더에mysite
라는 프로젝트를 부트스트랩python manage.py runserver
: 서버 실행, http://127.0.0.1:8000/를 통해 접속(지금은 잘 됐는지 확인 용도로 사용함)
이름 | 설명 |
---|---|
manage.py |
django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티 |
your_project/__init__.py |
python으로 하여금 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 빈 파일 |
your_project/settings.py |
현재 django 프로젝트의 환경 및 구성을 저장 |
your_project/urls.py |
현재 django project의 url 선언을 저장 |
your_project/asgi.py |
현재 프로젝트를 서비스하기 위한 ASGI-호환 웹 서버의 진입점 |
your_project/wsgi.py |
현재 프로젝트를 서비스하기 위한 WSGI호환 웹 서버의 진입점 |
MySQL 연동하기
1. MySQL 설치
장고에 데이터 베이스 설정 문서
MySQL notes¶
Version support¶
Django supports MySQL 8.0.11 and higher.
MySQL 8.0.11이상 다운 받을 것
- mysql community Downloads 해당 링크 접속 후 본인의 버전에 맞게 mysql설치 wsl2는powershel에서
wsl -l -v
- mysql-apt-config_0.8.33-1_all.deb이 있는 위치로 이동 (보통 다운로드에 있음)
sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb
(* mysql 설치가 다 끝나면 삭제 해도 됨*)sudo apt update
(모든 업그레이드 가능한 패키지를 업그레이드)sudo apt install mysql-server
- 5번의 명령어를 실행하면 root 비밀번호 설정 (Django 연결할 때 사용 되며 팀원들도 같이 사용할 비번임 꼭 기억할 것)
sudo systemctl status mysql
를 했을 때 active (running) 뜨면 정상 실행 중mysql -u root -p
: root 비밀번호로 mysql에 접속
2. Django에 MySQL 연동하기
uv add mysqlclient
Trying pkg-config --exists mysqlclient Command 'pkg-config --exists mysqlclient' returned non-zero exit status 1.
- 위와 같은 오류가 발생하면
pkg-config
: C라이브러리가 설치됐는지 확인 그런데mysqlclient
없음, 즉 mysqlclient 관련 C 헤더 파일이나 라이브러리가 설치되어 있지 않다"는 뜻 sudo apt install default-libmysqlclient-dev build-essential pkg-config
- 위와 같은 오류가 발생하면
.env
파일 생성 후 아래와 같은 내용을 적어준다(최상위, 즉.venv
와 같은 위치에다가 만들면 된다)env.example
도 만들어 아래의 내용을 적어주자 , .env는 절대 GIT에 커밋안되게 할것!!DB_NAME=chat_db DB_USER=root DB_PASSWORD=your_password DB_HOST=localhost DB_PORT=3306 # MySQL이 돌아가는 기본 포트
3. `uv add python-dotenv` (*파이썬에서 .env 파일을 읽을 수 있도록 도와주는 라이브러리*)
4. `settings.py 수정
```python
from dotenv import load_dotenv
import os
BASE_DIR = Path(__file__).resolve().parent.parent.parent # __file__ : your_project/mysite/settings.py, .parent: your_project/mysite, .parent: your_project, .parent: 최상위 디렉터리( 여기에 .env가 있음)
load_dotenv(dotenv_path=BASE_DIR / '.env') # .env의 위치를 읽어올 수 있게 하는 함수
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.getenv("DB_NAME"),
'USER': os.getenv("DB_USER"),
'PASSWORD': os.getenv("DB_PASSWORD"),
'HOST': os.getenv("DB_HOST"),
'PORT': os.getenv("DB_PORT"),
}
}
mysql -u root -p
로 접속 후 DB 생성CREATE DATABASE chat_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
CREATE DATABASE chat_db
:chat_db
라는 데이터베이스 생성CHARACTER SET utf8mb4
: MySQL에서 가장 권장되는 인코딩 방식COLLATE utf8mb4_general_ci
: 정렬 기준과 대소문자 구분 여부
(django.db.utils.OperationalError: (1049, "Unknown database 'chat_db'") 오류나서 만든 임시 DB)
- uv run python manage.py migrate
.gitignore
에.env
추가
협업자와 같은 환경 공유하기
- uv 설치
- git clone
- 해당 프로젝트의 디렉터리로 이동 후
uv venv
uv sync
출처
django 훝어보기
django 공식 릴리즈
django 튜토리얼
django와 어울리는 파이썬 버전
django 데이터 베이스 설정
mysql community Downloads
반응형
'개발 일지(웹소켓을 이용한 실시간 채팅)' 카테고리의 다른 글
UV 알고 가기 (0) | 2025.03.27 |
---|