Back-end(9)
-
[Django] Django로 만든 앱을 배포하기: Pythonanywhere
서론 개발한 앱을 PC에서 작동시킬수도 있지만, 만약 이 앱이 24시간 365일 작동해야 한다면 컴퓨터의 전원이 절대로 꺼지면 안될 것입니다. 또한 앱의 이용자가 기하급수적으로 늘어나면 컴퓨터의 CPU, 램, 저장장치 등을 추가해야 할 수도 있습니다. 이러한 환경을 개인이 구축하기에는 다소 힘들기 때문에, 앱을 제 3자에게 제공하여 사람들이 언제든지 자유롭게 앱을 사용할 수 있도록 배포할 수도 있습니다. Django 앱을 배포하는 방법은 다음과 같습니다. 1. AWS로 배포하기 : EC2 인스턴스로 배포할 수 있습니다. 또한 Django 앱을 Gunicorn(WSGI)과 연결하고 웹서버인 Nginx를 또 연결해야 합니다. 2. Pythonanywhere로 배포하기 : 소규모 앱에 적합하며 무료입니다. 배..
2023.01.31 -
[Python] 동적 웹사이트를 크롤링하기: Selenium
동적 웹사이트 vs 정적 웹사이트 정적인 웹사이트는 이미 웹페이지가 만들어져 있고 이를 웹서버에서 클라이언트로 그대로 전달합니다. 따라서 속도가 빠르다는 장점이 있으나 데이터베이스랑 실시간으로 상호작용하지는 않습니다. 반면 동적인 웹사이트는 웹서버가 미리 페이지를 만들어놓는 대신, 자바스크립트가 런타임 시에 웹페이지를 만듭니다. URL의 변화가 없는데 스크롤 시 새 요소가 로딩되는 사이트가 동적 웹사이트라고 할 수 있습니다. 만약 동적 웹사이트를 정적 크롤러로 크롤링하면 아무것도 없는 요소를 반환할 가능성이 높습니다. 아직 요소가 자바스크립트에 의해 만들어지지 않았기 때문입니다. 따라서 동적 웹사이트는 동적 크롤러로 크롤링해야합니다. 반대로 정적 웹사이트를 동적 크롤러로 크롤링하는건 사용자가 일반적으로 ..
2022.10.04 -
[Django] Django-rest-framework로 GET, POST, PUT, DELETE 구현하기: APIView
APIView Class-Based-View입니다. 따라서 상속이 가능합니다. APIView를 상속받은 클래스 내부에 HTTP Method인 POST, GET, PUT, DELETE 함수를 정의할 수 있습니다. 클래스 내부에 POST, GET, PUT, DELETE 구현하기 메소드를 구현하면 Request가 도달했을때 해당되는 메소드가 실행됩니다. 이전의 글에 이어서 설명하겠습니다. 간단하게 요약하자면 Person 모델에는 name과 age가 저장되며 pk는 Djnago에서 기본으로 만들어준 id입니다. [Django] 서버의 DB를 RESTful API로 접근하기: Django-rest-framework Django-rest-framework RESTful API에 해당합니다. Model-View-Co..
2022.09.14 -
[Django] Django의 DB에 INSERT, SELECT, UPDATE, DELETE하기: QuerySet
QuerySet MySQL 등으로 DB를 관리할 때 INSERT, SELECT, UPDATE, DELETE를 SQL문으로 실행하게 됩니다. 이와 유사하게 Django에서도 Python 코드로 모델을 생성하고, 이 모델로 생성된 DB에 INSERT, SELECT, UPDATE, DELETE 등의 CRUD 작업을 할 수 있습니다. QuerySet으로 DB의 객체를 전달받아서 이 객체의 메소드를 사용하면 됩니다. QuerySet 사용하기 모델 클래스이름.objects로 객체를 불러올 수 있습니다. 아래에서는 편의상 ModelClass.objects로 객체를 불러오겠습니다. 1. SELECT Dictionary형으로 객체를 가져옵니다. Key, value로 객체의 값에 접근할 수 있습니다. ModelClass...
2022.09.02 -
[Python] 일정한 주기나 특정 시간에 코드 실행시키기: Apscheduler
Apscheduler 일정한 주기마다 실행되어야 하는 코드를 예약할 수 있는 Python 기반 스케쥴링 라이브러리입니다. 데몬이 아니며 앱 내부에서 실행됩니다. BlockingScheduler: 하나의 프로세스에서만 동작하며 스케쥴링 된 작업이 실행될때 다른 작업은 일시중단됩니다. BackgroundScheduler: 백그라운드에서 동작하며 스케쥴링 된 작업이 실행될때 다른 작업도 할 수 있습니다. Apscheduler 설치하기 터미널을 키고 다음을 입력합니다. pip install apscheduler Apscheduler 사용하기: BackgroundScheduler BackgroundScheduler 객체를 초기화하고 그 객체의 add_job()를 실행해서 작업을 예약합나다. 1. 특정 시간에 주기..
2022.08.29 -
[Django] 서버의 DB를 RESTful API로 접근하기: Django-rest-framework
Django-rest-framework RESTful API에 해당합니다. Model-View-Controller(MVC) 패턴을 따릅니다. RESTful API REST의 원리*를 따르는 API입니다. * HTTP URI/ HTTP Method/ HTTP message pay load REST API의 설계 규칙을 지켜야 합니다. 1. URI는 정보의 자원을 표현해야 합니다. 2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현해야 합니다. Django-rest-framework 사용하기 1. Django-rest-framework를 설치합니다. pip install djangorestframework 2. Django 프로젝트와 앱을 생성합니다. 3. set..
2022.08.25