Skip to content
Jun edited this page Feb 7, 2024 · 29 revisions

Welcome to the Scoop-A-Dive wiki!

Framework

  • Django (Python)

Study

Materials

점프 투 장고 Wiki docs
Book: 핸즈온 장고

회원가입 및 로그인 기능 구현

User Model 확장

Migration 오류

Startapp이나 Startproject로 시작하지 않는 프로젝트에 대한 오류

[Nginx] 웹 서버 Nginx 에 대해서...

처음에 python startproject 를 통해 프로젝트를 만들고, 다음에 깃허브에서 클론 받아서 진행할 때는 python startproject로 진행하는 경우가 아니기 때문에 위와 같은 에러가 뜬다. 그래서 터미널에서 python manage.py runserver로 서버를 껐다 켰다 하기로 했음. 가상환경을 activate 하는 것을 잊지 말 것(venvs에서 activate 할 때 맥은 source activate 명령어를 통해야 함).

Happy Buddies

happy_buddies의 template에서
pairUpBuddies 함수 안의
newStudentKisu 변수를 해당 연도의 신입생 기수로 값을 넣을 것.
예) 2024년이면 신입생의 기수가 40기 이니, newStudentKisu = 40;

API

제주 다이빙샵 공공데이터

인코딩된 api key를 인증키 value 에 넣어서 curl -X 'GET' \ 'https://api.odcloud.kr/api/15045337/v1/uddi:cf70399f-9d4b-41ed-840b-820f27aa9480?page=1&perPage=10&serviceKey='인코딩된 키' \ -H 'accept: */*' 해주어야 한다. 코드에서 serviceKey 를 삽입하는 곳에는 인코딩된 키를 넣어주어야 한다.

-> XML 형식이 아닌 JSON 형식으로 데이터를 가져올 것임.

SERVICE KEY IS NOT REGISTERED ERROR 인코딩, 디코딩 다 해봐도 안됨(대학 전공 API 가져올 때).

Server

  • Gunicorn 실행

gunicorn —bind unix:/tmp/gunicorn.sock scoopadive.wsgi:application

  • 백그라운드에서 실행 (gunicorn -bind ... 명령어를 치지 않아도...)

nohup python manage.py runserver --insecure 0.0.0.0:8000 &

-> no hang up: 종료하지마라, -> --insecure: DEBUG 모드가 false기 때문에 css, media 파일이 동작하도록 하기 위해 secure로 실행 -> &: 백그라운드로 실행

즉,nohup gunicorn —bind unix:/tmp/gunicorn.sock scoopadive.wsgi:application을 해줘야 매번 gunicorn --bind ... 를 하지 않아도 백그라운드에서 gunicorn 이 실행됨.

ps -ef # 실행중인 프로그램 조회 kill -9 PID # PID에 프로세스 아이디 입력하여 종료

서버에서 코드 고쳤을 때, sudo systemctl restart mysite.service

Media and Static

MEDIA_ROOT = '/home/ubuntu/...' 경로 잘 맞춰주기. STATIC_ROOT 도 마찬가지.

template 에서 enctype="multipart/form-data" 꼭 잘 써주고, views.py 에서 request.FILE['images'] 로 잘 가져오기.

--> request.FILES.get('images') 로 해야 MultiDicKeyError 안남. 꼭 template의 form 에 enctype=multipart/form-data 넣어 줘야 이미지가 업로드 됨.

cd /etc/nginx/sites-available/mysite 에서

location /media {
        alias /home/ubuntu/projects/mysite/scoopadive/media/;
        try_files $uri $uri/ =404;
        autoindex on;
}

추가 잘 해주기.

Branches

  • develop-frame 브랜치에 웹사이트의 틀을 만들어 두었으며, 위키독스를 참고하였다.

개인 정보 보호

Clone this wiki locally