Django 7

[Python] OpenAPI JSON 데이터 받아오기

공공데이터포털의 데이터를 이용하여 재밌는 프로젝트를 하나 해보고 싶어서 Open API로 JSON 데이터 받아오기를 먼저 해보았다. csv 파일로 데이터를 받아올 수도 있지만, Django 내부의 데이터베이스에 데이터를 저장해서 사용하고 싶어서 OpenAPI를 이용하는 방식을 이용하였다. 일단 공공데이터 포털에서 인증키를 발급 받고 url을 설정해 준다. key = "인증키" start = 1# 첫 데이터 end = 50 # 마지막 데이터 url = f"http://openAPI.seoul.go.kr:8088/{key}/json/ListSnowRemoveBox/{start}/{end}/" 여기에 맞게 변수를 설정해 주었다. def get_data(url): req = request.Request(url)..

Django 2024.01.18

[Python] package 목록 관리 (requirements.txt)

내 로컬 컴퓨터의 가상 환경에서 작업하던 program을 프론트와 연동하기 위해서는 원격 서버를 이용하여 django 서버를 열어야 한다. Amazon EC2를 이용하여 instance를 생성하여 우분투 서버를 열었는데 새로운 서버에서 생성한 가상환경에는 (당연하게도) 내 로컬 컴퓨터 가상환경의 package들이 설치되어있지 않다. Github에 올려놓은 프로젝트르 clone 받아 실행해 보는데 package이 설치되어 있지 않으니 계속 오류 메세지가 뜨고, 하나씩 설치하고 있는데 설치하면서도 이게 맞나... 싶어서 찾아보니 requirements.txt를 이용하면 한번에 설치가 가능했다. 로컬 컴퓨터 가상 환경에서 pip freeze > requirements.txt 위의 명령어를 통해 설치된 pack..

Django 2023.10.05

[Python] 가상 환경이란? (Virtual Environment)

Python에서 가상 환경이란, Python interpreter, packages, 그리고 pip와 같은 tool들을 포함하고 있는 폴더이다. 공식 문서에는 이렇게 적혀있다. A virtual environment is (amongst other things): Used to contain a specific Python interpreter and software libraries and binaries which are needed to support a project (library or application). These are by default isolated from software in other virtual environments and Python interpreters and li..

Django 2023.10.05

[Django] DRF JWT 인증 방식을 이용한 회원가입 & 로그인 (3. 이메일 로그인/로그아웃)

로그인 내가 진행한 프로젝트에서는 이메일과 비밀번호로 로그인을 진행하였다. 그래서 username이 아닌 email로 로그인 / 로그아웃을 구현해보았다. 일단 코드를 보기에 앞서, 로그인 과정은 email & password 입력 -> 회원가입한 user인지 인증 -> token 발급 -> token을 쿠키에 저장 순서로 진행된다. 로그인을 username이 아닌 email로 진행하기 때문에 회원가입한 user인지 인증하는 과정에서 기본 authenticate()이라는 로그인 인증 함수가 제대로 작동하지 않았다. 그래서 authentication() 함수를 custom하여 사용하였다. 1. authentication() custom 하기 accounts/backends.py from django.cont..

Django 2023.09.01

[Django] DRF JWT 인증 방식을 이용한 회원가입 & 로그인 (2. 이메일 회원가입)

지난에 생성한 custom User를 사용하여 회원가입을 구현해보자. 앞서 말했던 것처럼 email을 이용한 회원가입, 로그인을 진행할 예정이다. 1. Signin API 작성 accounts/views.py import jwt from django.contrib.auth import authenticate from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView from rest_framework_simplejwt.serializers import TokenObtainPairSerializer, TokenRefreshSerializer from a..

Django 2023.08.18

[Django] DRF JWT 인증 방식을 이용한 회원가입 & 로그인 (1. User Custom)

Django로 프로젝트를 진행하면서 User 작업은 피할 수 없다. 사실 혼자 데베 프젝을 하면서 jwt 토큰을 이용하여 회원관리를 구현한 적이 있었는데, 데베와 연동을 하다보니 오류를 고치는 데에만 몇 시간이 걸렸다.. (물론 이번에도 마찬가지 였지만..) 그 때는 DB로 생성한 user 테이블을 이용하여 기능을 구현했는데 그러다 보니 필드가 서로 맞지 않아 생기는 오류가 너무 많았다. 그래서 이번엔 user custom을 통해 좀 더 디테일하게 만들었다. 1. 라이브러리 설치 pip install djangorestframwork pip install djangorestframework-simplejwt djangorestframework-jwt 라이브러리가 더이상 업데이트 되지 않아 DRF 공식 문..

Django 2023.08.18

Django - mariaDB (MySQL) 연동하기

프로젝트를 진행하기 위해서 기존에 구축해놓은 DB를 이용하기 위해 django와 mariaDB를 연동하여야 한다. mariaDB가 mySQL를 기반으로 만들어진 DB라 그런지 mySQL과 연동 방식이 같다. 1. 'mysqlclinet' 설치 Django와 MySQL을 연결시켜주는 'mysqlclient'를 설치한다. 'mysqlclient'는 mySQL과의 통신을 도와주는 python interface라고 한다. pip install mysqlclient 2. 'my_settings.py' 생성 manage.py 파일이 있는 디렉토리에 my_settings.py 파일을 생성한다. 처음 django 프로젝트를 생성하였을 때를 기준으로는 가장 상위 폴더에 생성하면 된다. touch my_settings.p..

Django 2023.07.26