rabbit-jun 2025. 3. 28. 14:37

uv 가상환경 실행

  1. curl -LsSf https://astral.sh/uv/install.sh | sh로 uv 설치
  2. uv init로 프로젝트 초기화( pyproject.toml 생성 + 기본 설정)
  3. uv add fastapi : .venv 가상환경에 fastapi 설치
  4. 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이상 다운 받을 것

  1. mysql community Downloads 해당 링크 접속 후 본인의 버전에 맞게 mysql설치 wsl2는powershel에서 wsl -l -v



  2. mysql-apt-config_0.8.33-1_all.deb이 있는 위치로 이동 (보통 다운로드에 있음)
  3. sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb (* mysql 설치가 다 끝나면 삭제 해도 됨*)

  4. sudo apt update (모든 업그레이드 가능한 패키지를 업그레이드)
  5. sudo apt install mysql-server
  6. 5번의 명령어를 실행하면 root 비밀번호 설정 (Django 연결할 때 사용 되며 팀원들도 같이 사용할 비번임 꼭 기억할 것)
  7. sudo systemctl status mysql 를 했을 때 active (running) 뜨면 정상 실행 중
  8. mysql -u root -p : root 비밀번호로 mysql에 접속

 

2. Django에 MySQL 연동하기

  1. 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
  2. .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"),
    }
}
  1. 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)
  2. uv run python manage.py migrate
  3. .gitignore.env 추가

 

 

협업자와 같은 환경 공유하기

  1. uv 설치
  2. git clone
  3. 해당 프로젝트의 디렉터리로 이동 후 uv venv
  4. uv sync

 

 

출처

django 훝어보기
django 공식 릴리즈
django 튜토리얼
django와 어울리는 파이썬 버전
django 데이터 베이스 설정
mysql community Downloads

반응형