Django

[Django] AWS Cloud9에서 Django 프로젝트 생성하기(1/2)

jjineei 2022. 10. 12. 15:32

 

 

AKS(Azure Kubernetes Service) 관련 프로젝트를 진행하는데, 협업하게된 개발 업체와 미팅을 진행했다.

보통 코린이..(코딩..어린이.맞나?ㅎㅎ)는 미팅에 아무말도 하지못하고,,

새로운 용어와 방식에 공부해야지..공부해야지..만 반복 ㅠㅠㅠ

 

무튼! "좀 무겁더라도 Backend는 Django로 진행하시죠!" 라는 말에

최찌니 : Django들어봤는데...머딩 ㅇ_ㅇ 우앙몰라 한번 해보까?

 

그리하여 러프하게 알아본 Django!

아무래도 회사 컴은 윈도우라 리눅스 작업이 편해서 IDE는 AWS cloud9을 썻당.

 


[Django(장고, 쟁고)란?]

Django Software Foundation이 관리하는 python 으로 작성된 오픈소스 Web Application Framework.

Model-View-Controller(MVC)패턴을 따른다.

 

그냥 내가 이해하기로는 python 으로 RESTful API를 활용하여, Backend 구성? 정도로만 이해하고 바로 실전에 돌입하였다. 나의 선생님 Google에서 서치해보니 Django로 간단히 블로그 만들기가 있어서 그걸 따라해 보았다.

 

1. 환경준비하기

기본적으로 cloud9에선 python, node 등 기본적으로 설치되어 있다. 아마 나는 다른 작업때문에 python 버전 업을 해준 것 같다.

*참고로 Django는 python 3.4 이상 버전에서 지원한다.

python version check
 
그다음은 가상환경 설치해주기! 가상환경을 설치해서 프로젝트를 생성하면 local에 존재하는 다른 패키지와의 충돌 가능성을 배제할 수 있다.

 

-명령어

pip3 install virtualenv #가상환경 설치(아래 사진에선 나는 이미 설치해둔 상태라, requirement already)

virtualenv --version # 가상환경 버전 확인

가상환경 설치
 
프로젝트 폴더 만들고 가상환경 활성화 시키기

-명령어

mkdir [project name] && cd [project name]

virtualenv --python=python devenv

source ./devenv/bin/activate

프로젝트 폴더 생성 및 가상환경 활성화

2. 프로젝트 생성

젤 어려운 환경세팅이 끝났다.

 

pip로 Django 프로젝트를 생성하고 cli를 사용할 수 있도록 추가 명령어도 쳐주자!

 

-명령어

pip install django

django-admin startproject mysite .

 

 

Django Install

 

생성된 폴더 확인

3.프로젝트 실행

-명령어

python manage.py runserver

 

"The above exception was the direct cause of the following exception:"

 

첫번째 에러!

django.core.exceptions.ImproperlyConfigured:SQLite 3.9.0 or later is required(found3.7.17)

 

<원인>

django에서 요구하는 버전은 3.9이상인데 너는 3.7이다.

 

<조치>

1) SQLite 최신 버전 설치하기

-명령어

sudo wget https://sqlite.org/2022/sqlite-autoconf-3370200.tar.gz

sudo tar -zxf sqlite-autoconf-3370200.tar.gz

cd sqlite-autoconf-3370200/

 

SQLite Download Page

https://sqlite.org/download.html

 
Download install file

 

-명령어

sudo ./configure sudo make clean

sudo make -j 20 && sudo make install

버전확인
경로설정 추가

-명령어

sudo /bin/cp -rf /usr/lib64/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6_bak

sudo /bin/cp -rf /usr/local/lib/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.

 

이렇게 해서 다시 runserver 

but, 아래 오류 발생

 

두번째 에러!

"django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher"

 

<원인>

create_deterministic_function의 내부 변수값 관련

deterministric을 True가 문제다어쩌구저쩌구..

 

<조치>

find . -name "base.py" 찾아서 deterministric=False로 변경

 

 
base.py
 

vi로 열어서 False로 변경해주자!!

deterministric = false

이제 오류는 끝

 

마지막으로 EC2 의 public DNS 설정을 해줘야 웹화면을 볼 수 있다.

settings.py에 아래와 같이 수정 및 설정해준다.

EC2 Public DNS로 Allowed hosts 설정
 
python manage.py runserver 0.0.0.0:8000 
 

+추가적으로 EC2사용하여, public DNS로 띄우려면 AWS Security Group 설정이 필요하다.

 

 

'Django' 카테고리의 다른 글

Gunicorn이란?  (0) 2023.02.09
[Django]AWS Cloud9에서 Django 프로젝트 생성하기(2/2)  (0) 2022.10.12