목록Development/Python & Django (52)
컴공생의 다이어리
datetime의 timezone 대한민국(서울)으로 변경 만일 pytz가 없다면 pytz를 pip 명령어를 통해 설치해주어야 한다. pip install pytz 그리고 다음과 같이 코드를 작성하면 서울에 맞춘 시간대가 출력된다. from pytz import timezone from datetime import datetime today = datetime.now(timezone('Asia/Seoul')) print(today) 또는 아래와 같은 방법을 통해서 변환할 수도 있다. from pytz import timezone from datetime import datetime # 한국 KST = timezone('Asial/Seoul') today = datetime.now() today = tod..
Django와 Bootstrap을 사용해 구현한 웹사이트 책을 보고 블로그를 구현해보았다. 이 책에서 나와있는 부분 중 현재 사용할 수 없는 부트스트랩 등의 부분을 알맞게 수정해서 만들었다. 구현한 웹사이트 코드 올려놓은 GitHub Repository
BeautifulSoup의 find(), find_all(), .string, get_text()에 이어서 BeautifulSoup의 select() 함수에 대해 알아보자! select() 함수를 사용하여 원하는 데이터 추출 find() 함수와 find_all() 함수를 이용하여 원하는 태그를 찾는 방법도 있지만 select() 함수를 사용하여 원하는 데이터를 추출할 수 있다. select() 함수를 이용하여 데이터 추출하는 방법의 장점은 다양한 옵션들을 사용할 수 있는 것이다. 아래와 같이 ex1에 html이 저장되어 있다고 하고 select() 함수를 활용해보자! select('태그이름') 아래는 태그의 내용을 모두 추출한 것이다. select('.클래스명') 아래는 클래스 이름이 name1인 태그만..
BeautifulSoup Beautiful Soup은 HTML 및 XML 문서를 구문 분석하기위한 Python 패키지이다. HTML에서 데이터를 추출하는 데 사용할 수있는 구문 분석 된 페이지에 대한 구문 분석 트리를 만들며, 웹 스크래핑에 유용하다. (만일 BeautifulSoup 패키지가 설치되지 않았다면 [pip install bs4] 명령어를 통해 설치) find() 함수 find() 함수는 조건을 만족하는 태그를 하나만 가져오는 함수이다. 만일 아래와 같이 p 태그가 여러 개 있을 경우에도 find() 함수는 p태그 중 첫번째 태그 1개만 가져온다. 위의 ex2의 html 코드 중 p태그가 3개가 있는데 여기서 align 속성이 center, right, left로 각각 다른 것을 볼 수 있다...
장고 모델(model) 수정시 모델(models.py)을 수정했다면 장고에게 makemigrations를 통해 알려주고 migrate로 데이터베이스에 반영해야 한다. 서버가 돌아가고 있다면 종료를 하고 아래와 같은 명령어 3개를 터미널에 차례대로 입력해줘야 한다. www.yes24.com/Product/Goods/96541859 Do it! 장고+부트스트랩 파이썬 웹 개발의 정석 만들면서 배우는 파이썬 웹 개발 A to Z!파이썬 기초 문법만 알면 나만의 블로그 사이트를 만들 수 있다!이 책은 블로그 웹 사이트를 만드는 실습을 진행하면서 웹 개발 기초부터 블로그 개발, 배 www.yes24.com
(TIME_ZONE과 USE_TZ는 settings.py에서 수정하면 됨) TIME_ZONE 원래 장고는 'UTC'라는 표준시에 맞춰져 있다. 이걸 서울을 기준으로 변경하려면 'Asia/Seoul'로 수정하면 된다. USE_TZ USE_TZ 변수 값 특성 False 장고는 내부적으로 Naive datetime 객체를 사용한다. 즉 장고 개발 시 Naive datetime 객체를 사용해야 한다. (기준 시간대는 항상 TIME_ZONE) True 장고는 내부적으로 Aware datetime 객체를 사용한다. 즉 장고 개발 시 Aware datetime 객체를 사용해야 한다. (기준 시간대를 명확히 지정해줘야 함) 폼에 입력된 날짜 값은 Current time zone으로 해석한 뒤 Aware datetime..
장고 데이터베이스 생성 [python manage.py runserver]로 서버를 실행을 하면 오류메시지가 중간에 아래와 같이 나온다. 이 오류는 '아직 18개의 적용되지 않은 마이그레이션이 있으며 이 마이그레이션을 적용하기 전까지 프로젝트가 제대로 작동하지 않을 수 있다'는 의미이다. 이때, 적용되지 않은 마이그레이션의 개수는 장고 버전에 따라 다를 수 있다. 장고에서 마이그레이션(migration)이란 데이터베이스에 적용시켜야 하는 변화에 대한 기록이다. 예를 들면 댓글 기능을 블로그에 추가하려면 댓글을 저장할 공간이 필요하다. 이를 데이터베이스에 반영해야 서버를 실행했을 때 웹 사이트에 추가한 댓글 기능을 제대로 사용할 수 있다. 과정 step1) 데이터베이스 생성하기 (혹시 서버가 돌아가고 있다..
크롤링(crawling) 가능 여부 확인 크롤링을 무작정 하다가 보면 맞게 작성한 것 같은 코드에서 아무 데이터도 못 얻고 있는 것을 확인할 수 있다. 이럴 때 크롤링 할 사이트가 크롤링이 가능한 사이트인지 확인해야 한다. 크롤링 가능 여부를 확인하는 방법은 사이트명 뒤에 /robots.txt를 붙여 확인하면 된다. Disallow라고 명시되어 있는 디렉토리 및 파일에 대해서는 크롤링을 할 수 없다. dailyoscar.tistory.com/49 크롤링 해도 되는 사이트인가? 흩어져있는 정보를 취합하고 서비스하기 위해 크롤링은 아주 좋은 기술이다. 만 흩어져 있다고 덮어놓고 크롤링하다간 큰 코 다친다.. 사이트들의 루트디렉토리에 있는 robots.txt 를 보면 이 사이 dailyoscar.tistory..
장고 앱 생성(django-admin startapp ~) 다음과 같은 구성으로 되어 있다고 하고 장고 앱을 생성하고 확인해볼 것이다! [django-admin startapp app1] 명령어를 입력하면 app1 앱을 생성할 수 있다. 장고 앱 실행 우선 [python manage.py runserver] 명령어를 입력해 개발 서버를 구동해보자. 서버를 구동했으면 "127.0.0.1:8000/app1"에 접속해보면 다음과 같은 화면을 발견할 수 있을 것이다. 'Page not found(404)'는 HTTP 오류 코드 중 하나로, 사용자가 요청한 페이지를 찾을 수 없는 경우 발생하는 오류이다. 장고는 오류 발생시 오류 원인을 웹브라우저 또는 명령 프롬프트에 자세히 보여준다. 이 오류가 발생한 이유에 대..
설치된 패키지 목록 requirements.txt 생성 가상 환경(venv) 혹은 현재 python에 pip로 설치된 패키지 목록에 대한 정보를 만들기 위해서는 freeze라는 명령어를 사용하면 된다. freeze 명령어를 통해 나온 출력 결과를 파일로 저장하려면 아래와 같이 입력하면 된다. requirements.txt 속 패키지 설치 반대로 requirements.txt라는 파일이 주어졌을 때, 그 안에 있는 패키지들을 모두 설치하기 위해서는 아래 명령어를 입력한다. docs.python.org/ko/3/tutorial/venv.html 12. 가상 환경 및 패키지 — Python 3.9.4 문서 12.1. 소개 파이썬 응용 프로그램은 종종 표준 라이브러리의 일부로 제공되지 않는 패키지와 모듈을 사용..