목록Python (13)
Seung's Learning Record
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zaxxf/btsGu5k6RDb/G4CSNR1BwwXlpzrfk8ukiK/img.png)
목차django의 app인 polls 폴더를 살펴보면 models.py라는 파일이 존재한다. 이 파일은 데이터베이스의 모델을 정의하는 곳으로, Django 애플리케이션의 데이터 구조와 관련된 정보를 포함하고 있다. 각각의 모델은 데이터베이스 테이블의 구조를 정의하고 이를 통해 데이터를 편집할 수 있게 해준다. 이러한 기능을 ORM이라고도 부른다.일반적으로 models.py 파일은 Django 애플리케이션의 각각의 앱(app) 폴더 내에 위치한다. 이 파일은 Python 클래스로 작성되며, 각 클래스는 데이터베이스 테이블을 나타낸다. 모델 클래스의 속성은 데이터베이스의 각 열(Column)을 나타낸다. 이러한 속성은 Django에서 제공하는 다양한 필드 타입으로 정의된다. 예를 들어, 문자열을 저장하는 필..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LkbCq/btsGqYuHuQu/3wxgbHCQ6jLU0Po6bBPqJk/img.png)
목차 Django에서 앱은 재사용 가능한 기능의 작은 모듈을 뜻한다. 예를 들어 인스타그램이라는 하나의 큰 프로젝트가 있다면 그 안에 있는 탐색 기능, 다이렉트 메시지 기능 등등이 앱이 되는 것이다. 이러한 각 앱은 모델, 뷰, 템플릿 및 URL 패턴을 포함하여 독립적으로 작동할 수 있다. 이렇게 하면 앱을 개발하고 유지 관리하는게 쉬우며, 여러 프로젝트에서 재사용할 수 있게된다.Django APP 생성하기기존에 만들어두었던 mysite 프로젝트 폴더 내부로 들어간뒤, 의견조사용 앱 polls를 생성하였다.$ python manage.py startapp pollsmysite만 생성되어 있었을때는 http://127.0.0.1:8000/ 에 접속하면 django 초기 화면이 떴었다. 이번에 만든 pol..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cY2ryF/btsGrX9DUMD/x5jQBXhaxzvkOnkEnKUPQk/img.png)
목차 Django는 파이썬으로 제작된 웹 프레임워크인 만큼 Django를 설치하려면 그에 앞서 먼저 Python을 설치해주어야 한다.https://www.python.org/downloads/ Download PythonThe official home of the Python Programming Languagewww.python.org 해당 링크로 들어가 가장 최신 버전의 Python을 다운받고 실행해주면 된다. 올바르게 설치되었는지 확인하고 싶다면 터미널에 "python" 명령어를 입력해주면된다. 아래와 같은 결과가 출력되면 올바르게 설치된 것이다.Python 3.x.y[GCC 4.x] on linuxType "help", "copyright", "credits" or "license" for mor..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bExccU/btsGqQuSq5O/OxsYv8Ik5C6TvBWg12xTx1/img.png)
≣ 목차 Seaborn 개념 Seaborn은 python에서 제공하는 데이터 시각화를 위한 라이브러리이다. Matplotlib을 기반으로 만들어졌으며, 데이터 시각화를 보다 쉽고 가시적으로 진행할 수 있게끔해준다. seaborn 자체에 내장된 penguins dataset을 활용해 사용법에 익숙해져보자. 사용할 데이터 셋의 구성은 다음과 같다. species : 펭귄 종 island : 서식지 bill_length_mm : 부리 길이 bill_depth_mm : 부리 위아래 두께 flipper_length_mm : 팔 길이 body_mass_g : 몸무게 sex : 성별 import seaborn as sns data = sns.load_dataset('penguins') # 데이터 로드 data = d..
≣ 목차 이전 포스팅에서 알아본 BeautifulSoup는 주로 정적인 웹 페이지에서의 데이터 추출을 위해 사용되는 라이브러리이다. 하지만 우리가 평소 사용하는 웹 사이트는 동적인 웹 페이지로 구성되어있는 경우가 더 많다. 이러한 경우에 사용할 수 있는 웹 스크래핑 도구인 Selenium에 대해서 알아보자. Selenium Selenium 이란? selenium은 웹 어플리케이션의 동적인 요소와 상호작용하기 위한 자동화 도구로 사용된다. 실제 브라우저를 제어하여 자바스크립트를 실행하고, 클릭, 텍스트 입력 등의 사용자 동작을 시뮬레이션한다. 기본적인 사용법 selenium 라이브러리에 있는 webdriver 모듈을 통해 웹 사이트에 직접적으로 접근해 제어가 가능하다. 크롬을 통해 웹 사이트에 접근할 것이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oWjWL/btsGlvRVHQr/mw3miFH6kMOdKKrVpWqNb0/img.png)
≣ 목차 지난 포스팅에서는 웹 스크래핑과 웹 크롤링 두 가지 개념에 대해서 간략하게 알아봤었다. 오늘은 웹 스크래핑에 사용되는 Python 라이브러리 중 하나인 BeautifulSoup에 대해서 알아보자. BeautifulSoup BeautifulSoup 란? 위에서 말했듯이, BeautifulSoup는 웹 스크래핑을 위한 파이썬 라이브러리이며, 주로 HTML 및 XML 문서에서 데이터를 추출하고 구문을 분석하는 데 사용된다. 일반적으로 requests 메서드를 통해 가져온 값을 HTML로 파싱 후, 변환된 값에 beautifulSoup를 적용하며 사용한다. 사용법 beautifulSoup의 기본적인 사용법은 다음과 같다. 우선 라이브러리를 import한 후 객체를 생성해 메서드들을 사용하기만 하면 되기..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CH9cS/btsGd7k77Wt/hk9G2iFDbuFYLnLJxrkB30/img.png)
≣ 목차 HTML이란? HTML 기본 문법 HTML은 기본적으로 의 구조를 가지며, 콘텐츠를 가지는 태그와 가지지 않는 태그로 구분된다. 콘텐츠를 가지는 태그는 시작 태그와 종료 태그를 가지는 한 쌍으로 존재하는 반면, 콘텐츠를 가지지 않는 태그는 단일 태그만 존재한다. 이때 단일 태그는 셀프 클로징을 통해 코드를 끝내거나, 아예 열린 상태로 두거나 한다. 콘텐츠 html 문법 사용 시 주의해야 할 점은 다음과 같다. 대소문자 주의 - 태그는 가능한 소문자로 작성 닫는 태그 생략 주의 ID가 중복되지 않게 주의 계층 구조 유지 동일한 의미의 태그 중첩 주의 속성과 값 태그는 기본적으로 기능 확장을 위한 속성과 값을 가진다. 아무개 HTML 기본 문서 구조 HTML의 기본적인 문서 구조는 다음과 같다. D..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ex5DSM/btsGazn8f7u/DZNEcrpNLW8mEp0jqdknr0/img.png)
사용한 풀이법 : heap 풀이 과정 최소값과 그 다음값을 탐색, 계산 후 다시 삽입 => 해당 연산이 조건을 충족할 때 까지 반복되어야 함. 이를 위한 자료구조가 바로 최소힙! 1. heapify 메서드를 통해 scoville 리스트를 최소힙으로 초기화 2. 항상 최소값을 뽑아내는 heappop 연산을 통해 min1, min2를 설정 이때, min1이 k이상이거나, 더 이상 뽑아낼 원소가 없을때는 반복문 종료 3. 삽입할 원소를 계산 후, 힙에 push 4. 연산이 완료 될 때마다 +1한 answer를 리턴 풀이 코드 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while True: min1 = heapq.heap..
≣ 목차 해시(Hash) 해시 개념 해시란 해시 테이블에 Key와 Value를 매핑해서 데이터를 저장하는 자료구조이다. 주로 데이터 탐색, 삽입, 집계등의 연산을 할때 유용하며, 인덱스 값이 숫자가 아닌 문자열이나 튜플을 때도 유용하다. 하지만 최댓값과 최솟값을 찾는 문제는 자료구조 전체를 탐색해야 하기 때문에 효율성이 떨어진다는 단점이 있다. 해시 (Hash) : 임의 값을 고정 길이로 변환하는 것 해시 테이블 (Hash Table) : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해싱 함수 (Hashing Function) : Key에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 해시 값 (Hash Value) 또는 해시 주소 (Hash Address) : Key를 해싱 함수로..
≣ 목차 트리 트리 정점(node)과 간선(edge)을 이용하여 데이터의 배치 형태를 추상화한 자료 구조로, 순환하는 길이 없는 그래프라고 말할 수 있다. 루트 노드 (root node) : 트리의 최상단 노드 리프 노드 (leaf nodes) : 트리의 최하단 노드 내부 노드 (internal nodes) : 루트와 리프 사이에 위치한 노드 부모 (parent) 노드와 자식 (child) 노드 : 정점의 바로 위 노드가 부모 노드, 바로 아래 노드가 자식 노드 (부모의 부모는 조상노드, 자식의 자식은 후손 노드) 노드의 수준 (level) : root로 부터 각각의 노드까지 도달하기 위해 거쳐야하는 간선의 수 (root = level 0) 노드의 차수 (degree) : 자식 노드의 수 트리의 높이 (..