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 이상 버전에서 지원한다.

-명령어
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 .


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

-명령어
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로 변경

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

이제 오류는 끝
마지막으로 EC2 의 public DNS 설정을 해줘야 웹화면을 볼 수 있다.
settings.py에 아래와 같이 수정 및 설정해준다.


+추가적으로 EC2사용하여, public DNS로 띄우려면 AWS Security Group 설정이 필요하다.
'Django' 카테고리의 다른 글
Gunicorn이란? (0) | 2023.02.09 |
---|---|
[Django]AWS Cloud9에서 Django 프로젝트 생성하기(2/2) (0) | 2022.10.12 |