본문 바로가기
강의/스파르타코딩클럽

[웹개발 종합반] 3주차 정리

by gardenii 2023. 5. 21.

3-6 파이썬 패키지 설치하기

  • 가상환경 venv - 패키지를 담아두는 공구함
  • 가상환경 구축 방법
    1. 해당 프로젝트 폴더로 이동
    2. (window) 터미널에서 python -m venv venv 엔터 
    3. vs code 우측 하단에서 인터프리터 venv로 변경 후 새 터미널 열기
    4. (venv) 표시 확인
  • 파이썬 패키기 requests 설치
    • pip install requests 

3-7 패키지 사용해보기

  • requests 패키지 - fetch와 유사
  • 서울시 대기 openAPI 에서 모든 구의 미세먼지 값 출력하기
import requests # requests 라이브러리 설치 필요

r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()

rows = rjson['RealtimeCityAir']['row']

for a in rows:
	gu_name = a['MSRSTE_NM']
	gu_mise = a['IDEX_MVL']
	print(gu_name, gu_mise)

3-9 웹 스크래핑(크롤링) 연습

import requests
from bs4 import BeautifulSoup

URL = "https://movie.daum.net/ranking/reservation"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(URL,headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

video_list = soup.select("#mainContent > div > div.box_ranking > ol > li")
for v in video_list:
  # print(v)
  rank = v.select_one(".rank_num").text
  title = v.select_one(".tit_item").text.strip("\n")
  rate = v.select_one(".txt_grade").text
  print(rank, title, rate)

3-10 DB 개괄

  • RDBMS(SQL)
    • 엑셀과 유사하게 정형화되어있고 일관성이 있어 분석에 용이
    • ex) MS-SQL, My-SQL 등
  • No-SQL
    • 딕셔너리 형태로 데이터를 저장
    • 자유로운 형태의 데이터 적재에 유리한 대신, 일관성 부족
    • ex) mongoDB

3-11 mongoDB 시작하기

  • Free 선택, 지역 Seoul 선택
  • Username, Password 입력
  • IP Address에 0.0.0.0 입력 후 Add Entry

3-12 mongoDB 연결하기

  • pymongo : mongoDB를 조작하기 위한 파이썬 라이브러리
  • pymongo, dnspython 패키지 설치
# pymongo 기본 코드
from pymongo import MongoClient
client = MongoClient('여기에 URL 입력')
db = client.dbsparta
  • mongo atlas에서 Connect 클릭
  • Drivers 연결 방법 선택
  • 파이썬 버전 알맞게 설정 후, 아래 링크를 복사
  • url을 기본 코드에 넣고, Password 수정

3-13 pymongo로 DB조작하기

  • DB연결하기 & 데이터 넣기
# 'users'라는 collection에 {'name':'bobby','age':21}를 넣습니다.
db.users.insert_one({'name':'영희','age':30})
db.users.insert_one({'name':'철수','age':20})
db.users.insert_one({'name':'john','age':30})
  • 모든 결과 값을 보기
# 모든 데이터 뽑아보기
all_users = list(db.users.find({},{'_id':False}))

print(all_users[0])         # 0번째 결과값을 보기
print(all_users[0]['name']) # 0번째 결과값의 'name'을 보기

for a in all_users:      # 반복문을 돌며 모든 결과값을 보기
    print(a)
  • 특정 결과 값 뽑아보기
user = db.users.find_one({})
print(user)
  • 수정, 삭제하기
db.users.update_one({'name':'영수'},{'$set':{'age':19}})

user = db.users.find_one({'name':'영수'})
print(user)
db.users.delete_one({'name':'영수'})

user = db.users.find_one({'name':'영수'})
print(user)