웹개발 종합반 3주차

박성우·2023년 3월 22일
0

지난 1,2주차에서 Frond-End쪽 기술을 공부했다면, 3주차에는 파이썬 패키지 및 DB에 대해 공부하는 시간이였다.

가상환경 venv

다른 프로그램에 영향이 가지 않도록, 각 프로젝트 별로 패키지를 따로 설치해두고 관리하는 공간

다음과 같이 venv 환경을 생성할 수 있다.

python -m venv '폴더명'

폴더명을 넣고 실행하게되면 가상환경 폴더가 생성되고 해당 폴더에 파이썬 패키지를 설치하면 된다.

웹 크롤링 라이브러리

  • requests: URL로부터 HTML을 가져오기 위해 사용
  • BeautifulSoup: 가져온 HTML로부터 필요한 정보를 용이하게 추출 가능

주로 다음과 같이 사용된다.

import requests
from bs4 import BeautifulSoup

headers = {'User-Agent' : '...'}
data = requests.get('URL', headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

이렇게 변수 soup에 우리가 기입한 URL로부터 HTML이 담겨져왔다.

이제 원하는 데이터만 가져오면 되는데, select() 함수를 사용하면 간편하다.

# 선택자를 사용하는 방법 (copy selector)
soup.select('태그명')

soup.select('상위태그명.클래스명 > 하위태그명.클래스명')

soup.select_one('...')

SQL vs NoSQL

  • RDBMS(SQL): 정형화된 데이터, 행/열이 정해진 데이터
    ex) MS-SQL, My-SQL, ...
  • No-SQL: 자유로운 형태의 데이터, 딕셔너리 형태
    ex) MongoDB

DB는 일반적으로 프로그램과 같이 컴퓨터에 설치해서 사용하지만, Cloud 형태로 외부에서 제공해주는 경우도 많다.
예로서, MongoDB Atlas가 있다.

DB 조작 라이브러리

  • pymongo: MongoDB를 python으로 조작하기 위한 라이브러리
  • dnspython: pymongo 동작에 필요한 라이브러리로서, 도메인을 받아 송수신하는데 사용

DB에 데이터를 저장하거나, 찾거나, 수정할 경우에는 다음과 같은 코드를 사용하면 가능하다.

클라이언트를 DB에 연동하고나서,

# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)

# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})

# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))

# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

# 지우기 - 예시
db.users.delete_one({'name':'bobby'})

DB를 조작할 때마다 가져다쓰면 된다.

profile
Backend Developer

0개의 댓글