-
django.3 미니콘다 가상환경 설정 및 CRUD_1Django 2020. 11. 25. 19:14728x90
웹 개발 Background
브라우저에서 콜드브루를 클릭하는 순간
프런트서버로부터 상품 상세 정보를 요청 받음
CRUD의 가장 적합한 예시 (게시판 기능)
models.py를 가지고 데이터베이스에 접근해서 CRUD를 해보자
모델스 파이에서 하는일은 ORM 을통 해 데이터베이스 테이블로 바꿔 테이블을 구성할 수 있다
순서
conda activate starbucks # startbucks 라는 명의 가상환경 설정
미니콘다를 이용하였으며
미니콘다 가상환경 base -> starbucks 라는 가상환경을 만들고
그 가상환경에 장고를 설치하였다.
Admin 페이지란?
DB 테이블을 웹 페이지 상에서 손쉽게 관리할 수 있도록 도와주는 웹페이지를 의미한다.
장고는 Admin 페이지를 자체적으로 제공하기 때문에
프록래머는 Admin 페이지에서 관리하고자 하는 테이블을 추가해주기만 하면 된다.
우선 starbucks 를 관리할? 프로젝트(디렉토리)를 생성해주자
startbucks가 생성됨을 알 수 있다.
starbucks 디렉토리로 들어가보면 아래와 같은 관계가 형성됨을 알 수 있다.
Starbucks manage.py statbucks __init__.py asgi.py settings.py urls.py wsgi.py
이제 장고와 데이터베이스를 연결해보자
장고라는 프레임워크는 데이터베이스가 없으면 기동을 하지 않도록 설계가 되어있다.
따라서 기본적으로 설치시 sqlite3 로 설정이 되어있기 때문에 우리가 아무것도하지않고 장고만 깔아도 문제없이 동작한다.
vim starbucks/setting.py
위 명령어로 setting.py를 열어보면 DATABASES 의 default 값으로 sqlite3가 설정되어 있는것을 확인 할 수 있다.
만약 setting.py에 설정값을 넣어서 해당 자료를 github에 올리는 순간 전세계에 내 데이터베이스 정보가 만천하게 공개되는 일이 생긴다.
따라서 이를 막기 위해 별도의 설정 파일을 따로 빼놓고 그것을 임포트하고 적용하는 방법으로 하고
그 별도의 파일은 깃허브에 공유되지 않게 해줘야 한다. (절대 쉽게 노출되면 안되는 파일로 생각하자)
항상 데이터베이스의 설정을 넣을때는 파일을 하나 만들어주자.
vi starbucks/my_setting.py
my_setting.py를 만들고 아래 데이터베이스 내용을 직접 넣어주자.
NAME : 데이터베이스 네임으로 실제로 사용될 데이터베이스 네임이다.
DATABASES = { 'default' : { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'my_first_database', 'USER': 'root', 'PASSWORD': '092492', 'HOST': 'localhost', 'PORT': '3306' } }
이제 내가 만든 가상환경과 mySQL을 연결(연결 통로 : PORT라고 한다)하여 mysql로 만든 데이터베이스를
가상환경에서 사용 및 확인할 수 있게 된다.
mysql 에 내가 만들었던 데이터베이스 네임을 이용해
mysql 내의 데이타베이스를 만들어주자
아래 명령어로 내가 지정하였던 my_first_datebase 라는 이름을 가진 데이타베이스를 mysql 안에 생성해줄수 있다.
mysql> create database my_first_database character set utf8mb4 collate utf8mb4_general_ci;
Query OK, 1 row affected 라고 나오면 데이타베이스가 정상적으로 만들어진것 이다.
use 데이타베이스 네임 을 이용해 데이타베이스가 만들어졌는지 확인이 가능하다.
이제 mysql 안에 데이타베이스를 만들었으니 빠져나오자
위에서 가상환경 starbucks 안에 값을 넣었던 my_settings.py 가 아직 프로젝트에 적용된 상태가 아니므로
적용해주도록 하자
어떻게 적용을 하느냐
내가 만들어놓은 my_settings.py를 starbucks 가상환경안의 setting.py에서 읽어올 수 있도록 import 해주면 된다.
아래 이미지들은 모두 starbucks 안의 setting.py 내용이다.
아래 ALLOWED_HOSTS =['*'] 모든 호스트를 허용한다는 뜻으로 이해되나 과제 마무리후 찾아보도록 하자
DATABASES 값을 1번째 이미지에서 2번째 이미지 처럼 my_settings.py 의 데이터베이스로 할당해준다.
(이부분이 위에서 언급한 나의 데이터베이스가 온라인상에 공개되는걸 방지하는 역할을 하는 것으로 보인다.)
자 그럼 가상환경 서버를 돌려서 정상적으로 작동하는지 알아보자
python3 manage.py runserver
앗! 작동하지않는다.
mysql을 사용하려면 mysqlclient가 설치를 해줘야 사용이 가능하다고 한다.
그럼 설치해주자
pip install mysqlclient
이제 서버를 구동시켜보도록 하자
많은 우여곡절이 있었지만 해결완료! (뿌듯하다)
뒤에 이어질 내용으로 아래 포스트를 참고하자
728x90'Django' 카테고리의 다른 글
wecode_CRUD_1 과제 (0) 2020.11.28 django.6 가상환경 내에서 data 집어넣기 (0) 2020.11.28 django.4 스타벅스 모델링 과제_wecode (0) 2020.11.26 django.2 튜토리얼 (0) 2020.11.24 Djange.1 Django 기초 (0) 2020.11.23