[django] 장고에서 mySQL 사용해보기

김기용·2020년 10월 28일
0
post-thumbnail

⚡️ SQLite 의 한계

장고는 기본적으로 SQLite라는 가벼운 데이터베이스를 제공하여 👍빠른 개발을 가능케 하지만 🤭실제로 데이터베이스를 운용할때는 좀 더 규모있는 데이터베이스를 사용한다.


mysqlclient

To achieve that you would need some software, which can store that data efficiently and also some middleware which can let you communicate with the database.
장고와 mySQL을 연동해주는 과정이 필요하다 mysqlclient

 pip install mysqlclient

지금 시작할 프로젝트와 연결해줄 mysql schema를 만들어준다

mysql 실행 방법:
terminal 실행후

~ cd /usr/local/mysql/bin/
~ ./mysql -uroot -p

이렇게 화면이 나오면 성공
mysql>


conda create -n [envName][package]

가상환경 진입후

conda activate [envName]

mySQL로 진입.

mySQL 지난 블로그를 보고 따라해보자
https://velog.io/@amuse/DATABASE-MySQL

새로운 schema를 만들어 준다
CREATE DATABASE 스키마이름;

create database django_insta character set utf8mb4 collate utf8mb4_general_ci;

utf8mb5_general_ci 란 ?
database에서 문자열을 정리할때 어떤 문자들이 먼저올지를 결정하는기준 (AaBb, ABab)

utf8mb4_general_ci>utf8m64_unicode_ci
utf8m4_unicode_ci 보다 general 빠르다.

비라틴계 언어들에 대해서는 어색한 정렬 순서가 존재하기 때문. unicode가 조금 느려도 호환때문에 사용(이모티콘이나 특수문자등)


database schema 를 사용하기위해 선택

use [스키마이름]

장고 프로젝트 안에 데이터베이스 세팅을 둘 파일을 생성
데이터 정보 보안이 중요하다면 .gitignore 파일에 넣어야한다!

touch [파일이름.py]

내용 작성후 저장

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '[스키마이름]',
        'USER': '[데이터베이스 계정]',
        'PASSWORD': '[데이터베이스 비밀번호]',
        'HOST': '[데이터베이스 주소(ip/로컬이면 'localhost')]',
        'PORT': '[데이터베이스 포트(보통은 '3306')]',
    }
}

장고 프로젝터 생성

django-admin startproeject [프로젝트이름] 
		or
django-admin startproeject [프로젝트이름] .

장고 프로젝트 생성후 앱 생성

./manage.py startapp [앱이름]

settings.py 로 이동해서 앱등록과 데이터베이스 경로 수정

INSTALLED_APPS =[
...
'[앱이름]',
]



import my_settings

DATABASES = my_settings.DATABASES

./manage.py migrate으로 데이터 모델 생성


sql에서 테이블 생성 여부 확인해보기

show tables

profile
매일 새로운 배움을 통해 꾸준히 성장하는 것을 목표를 두고 있습니다. 논리적인 사고로 문제해결 하는것에 희열을 느끼고 언젠가 제가 만든 결과물들이 사람들에게 편이를 제공하며 사용되는 날을 간절히 소망하고 있습니다. 🙏

0개의 댓글