[항해99 사전준비] 웹개발종합반 3주차

Breadman·2021년 5월 31일
0

항해99

목록 보기
3/28
post-thumbnail

Python

직관적인 문법, 방대한 라이브러리로 최근들어 사용률이 높은 언어.

  • 문법
# 변수 선언
type_num = 1
type_str = 'string'
li = []
dic = {}

# 함수 선언
def sum(num1, num2):
  return num1 + num2

# 조건문
if age is not None:
  print('Please enter the age')
elif age > 20:
  print('adult')
else:
  print('child')

# 반복문
for person in people:
  print(person['name'])
  • pip는 npm, yarn 같은 일종의 패키지 매니저다.
  • python에서 문자열은 리스트([])로 관리되기 때문에, [0:2] 같은 문법을 이용해 substring 할 수 있다.

PyCharm

마이크로소프트에 Visual Studio 가 있다면, JetBrain엔 Pycharm이 있다.

대표적인 Python IDE라고 한다. 단점으로 무겁다는 것만 빼면 많이 사용하는 편인 것 같다.

인터프리터에 자신이 원하는 파이썬 버전을 선택할 수 있다.

Python libraries

requests

  • curl이나 postman처럼 서버에 요청을 보내는 기능을 가지고 있다.
import requests

# header는 굳이 없어도 되지만, 브라우저에서 요청을 보낸 것처럼 보여지기 위해 사용됨.
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)

BeautifulSoup(bs4)

  • 웹페이지 스크래핑 기능을 가지고 있다.
import requests
from bs4 import BeautifulSoup

data = requests.get(url)

# requests로 받은 text 데이터를 html 형식으로 읽을 수 있게 파싱.
soup = BeautifulSoup(data.text, 'html.parser')	


## 사용법

# tag 가져오기
movie = soup.select_one('#old_content > table > tbody > tr')
movies = soup.select('#old_content > table > tbody > tr')

# tag 내부의 text
movie.text

# tag 속성
movie['src']

Database

데이터를 단순히 보관하는 것에 그치지 않고, 필요에 따라 탐색하기 쉽게 정리하는 데이터 보관 기술.

  • DB 프로그램을 제공하는 회사들은 자신들의 데이터 정리방식의 장점을 어필한다.

SQL vs NoSQL

종류특징대표적인 DB
SQL엑셀과 같은 정형화된 데이터를 보관하기 용이함. 따라서 데이터 일관성이나 분석에 용이함. 중간에 열을 추가하기 어려움.MySQL, MsSQL, Oracle
NoSQL딕셔너리 형태로 보관되며, 모든 요소를 동일하게 가질 필요 없음. 자유로운 형태로 보관이 가능하나, 일관성이 부족할 수 있음.MongoDB

pymongo

mongoDB를 python에서 쉽게 접근하고 통제할 수 있게 돕는 라이브러리.

사용법

from pymongo import MongoClient


client = MongoClient('localhost', 27017)   # mongoDB에 접속


db = client.myLocalDB 	# DB 선택
			# client['myLocalDB'] 가능

users = db.users 	# Collection 선택
			# db['users'] 가능


## 자주 사용되는 함수들

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

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

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

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

# 지우기 - 예시
db.users.delete_one({'name':'bobby'})
  • (중요!) find시, 타입도 비교하기 때문에 update할 때 기존 데이터와 동일한 타입으로 넣어주는 것이 좋다.

etc

  • 개발자 도구 - elements 에서 원하는 element에 우클릭 - copy - copy selector 하면 해당 element의 선택자를 문자열로 클립보드에 복사시켜준다.

후기

새로운 것을 접하면서 이걸 기억하고 이해하고 써먹어야한다는 생각이 들다보니, 스트레스로 다가오는 순간들이 있다. 일단 가져다 쓰면서 익숙해지자는 마음으로 평온을 가져야 롱런할 수 있을 것 같다.

일단 복붙.

profile
빵돌입니다. 빵 좋아합니다.

0개의 댓글