Django 기초 (1/2) - 패스트캠퍼스 챌린지 AWS 인프라 구축과 DevOps 운영 11일차
< 강의 커리큘럼 >
01. DevOps의기본 개념
02. AWS기반 소규모&중규모 아키텍트설계
03. AWS기반 대규모아키텍트 설계
04. 코드를통한 인프라관리(IaC)
05. 도커와 쿠버네티스를 이용한서비스 운영
06. CI/CD(지속적 통합/지속적 제공) 구현하기
07. 모니터링서비스 구축및운영
08. AWS기반보안
부록. Kuberneteson AWS EKS
모놀로식 아키텍처를 한번 배포해보고자합니다.
앞서 기본적으로 알아야되는게 Django를 이용하고 인프라는 당연히 AWS를 사용하려고 합니다.
그런데 Django에 대해서 들어만 봤지. 실제로 써보지 않았기 때문에 강의에서 설명해주는 듯 합니다.
https://docs.djangoproject.com/ko/3.2/intro/tutorial01/
첫 번째 장고 앱 작성하기, part 1 | Django 문서 | Django
Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate
docs.djangoproject.com
해당강의는 위 링크를 따라하면서 진행했습니다.
Django 설치하기.
모든 개발에 있어서 환경설정이 필수인것을.. 본인은 다 깔려있다고 하고 그냥 넘기네요..
후..
https://docs.djangoproject.com/en/2.0/topics/install/#installing-official-release
How to install Django | Django documentation | Django
Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate
docs.djangoproject.com
저의 경우는
코드들을 모아두는 폴더가 따로 있습니다.
python --version
>> 3.7.5
설치가 되어 있었고.
cd /폴더경로
mkdir fastcamp-1
cd fastcamp-1
생성한 이후
pip install Django
를 통해서 Django를 설치했습니다.
python -m django --version
>> 3.2.9
프로젝트 생성하기
django-admin startproject mysite
명령어를 통해서 Project를 생성합니다. 프로젝트명은 mysite 부분을 변경하면 가능합니다.
좌측 사진과 같이 프로젝트가 생성되면서 기본 파일들이 생성됩니다.
그렇기 때문에 해당명령어를 통해서 프로젝트를 생성합니다.
1. manage.py : 서버를 운영하는 파일 서버 런, 스탑 .. 같이 진짜 메인. 중요한업무 시행
2. settings.py : 장고의 다양한 셋팅을 확인할 수 있고, 변경할 수 있음
디비를 변경할때 DATABASES = 부분을 변경할 필요가 있음.
3. urls.py : URL 관련 행위를 모두 다함.
- The outer mysite/ root directory is a container for your project. Its name doesn’t matter to Django; you can rename it to anything you like.
- manage.py: Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티 입니다. manage.py 에 대한 자세한 정보는 django-admin and manage.py 에서 확인할 수 있습니다.
- mysite/ 디렉토리 내부에는 프로젝트를 위한 실제 Python 패키지들이 저장됩니다. 이 디렉토리 내의 이름을 이용하여, (mysite.urls 와 같은 식으로) 프로젝트의 어디서나 Python 패키지들을 임포트할 수 있습니다.
- mysite/__init__.py: Python으로 하여금 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한 빈 파일입니다. Python 초심자라면, Python 공식 홈페이지의 패키지를 읽어보세요.
- mysite/settings.py: 현재 Django 프로젝트의 환경 및 구성을 저장합니다. Django settings에서 환경 설정이 어떻게 동작하는지 확인할 수 있습니다.
- mysite/urls.py: 현재 Django project 의 URL 선언을 저장합니다. Django 로 작성된 사이트의 《목차》 라고 할 수 있습니다. URL dispatcher 에서 URL 에 대한 자세한 내용을 읽어보세요.
- mysite/asgi.py: An entry-point for ASGI-compatible web servers to serve your project. See ASGI를 사용하여 배포하는 방법 for more details.
- mysite/wsgi.py: 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점입니다. WSGI를 사용하여 배포하는 방법를 읽어보세요.
서버 시작하기
python manage.py runserver
명령어를 통해서 실행 할 수 있습니다.
성공해서 127.0.0.1:8000 접속을하면 로그들도 쭉 뜨는 걸 확인 할 수 있습니다.
설문조사 앱 만들기
python manage.py startapp polls
명령어를 실행하면 아래 사진과 같이 새로운 polls라는 폴더가 생성되면서 기본 코드들이 들어갑니다. 자동으로
models.py 라는 파일은
> 데이터베이스라고 생각하면 됩니다. 데이터에 접근하기 위한 그런 클래스 형태를 통해서 디비를 변경 CRUD를 진행합니다.
views.py 파일은
> 사용자가 버튼을 클릭했을 때 나오는...백에서돌아가는 알고리즘,로직들을 관리하는 그런 파일..
urls.py와 views.py 파일을 통해
url의 값에 따라 어떤 페이지를 보여줄지를 정할 수 있게 됩니다. (urlpatterns path에서 설정)
데이터베이스 설치
python manage.py migrate
>> 설명이 딱히 없네요..
모델 만들기
models.py : CRUD를 할 수 있는 클래스를 정의한다.
데이터베이스의 개념이 필요하며, 클래스 내부의 변수선언이 스키마 설정이면서 Foreignkey 설정 등을 합니다.
장고에서 마이크레이션하는게 엄청 편한것 같습니다.
models.py의 형식에 맞춰서 금방 되는 형식이네요.
설명을 쓰기가.. 어렵네요..
위에 페이지가 있으니까 그대로 따라해보면 좋을 것 같습니다.
manage.py 파일이 main이다보니까 모든 실행시에 해당파일을 기준으로 migrate 할지 어떤 동작을 할지 입력하네요.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr