Python 기본
Python란 인터프리터 방식의 프로그래밍 언어이다.
인터프리터 방식이란 코드를 한 줄씩 실행하는 방식으로 위에서부터 순차적으로 작동한다고 보면 된다.
빅데이터 및 AI관련 분야에서 주로 사용되고 있다.
Python기본 문법
다른 언어들과는 다르게 자료형 선언 없이 변수를 사용한다.
들어가는 값에 따라 사용이 달라저 변수명 선정에 좀 더 신경을 써야 할 듯하다.
함수 및 조건문, 반복문 사용에도 중괄호 대신 콜론을 사용하고 들여 쓰기로 구분을 하기 때문에 사용에 주의
# 변수 선언
name = '철수'
a = 5
b = True
# 리스트 및 딕셔너리
a = ['사과', '배', '감', '귤'] // 리스트 - 배열과 동일
b = {'name':'영수', 'age':30} // 딕셔너리 - 키-값 형태(JSON)
c = [ // 리스트 속 딕셔너리 가능
{'name':'영수', 'age':30},
{'name':'철수', 'age':35}
]
# 조건문 및 반복문
ages = [5, 10, 13, 23, 25, 9]
for a in ages: # 함수와 동일하게 중괄호 대신 콜론 사용
if a > 20:
print('성인입니다.')
else:
print('청소년입니다.')
# 함수 사용
def sum(a,b,c): # 중괄호 대신 콜론을 사용, 구분은 탭을 통해 해서 정렬 중요
return a+b+c
Python 패키지 사용
기본 가상환경이 있지만 프로젝트 별로 따로 라이브러리를 사용하기 위해 해당 폴더에서 새로 가상환경을 생성해 준다.
# 패키지를 모아두기 위해 가상환경 생성
# 터미널에서 명령어 사용
python(맥은 python3) -m venv venv
# venv 폴더 생성 후 활성화를 시켜준다.
# 이후 사용할 라이브러리 설치 (연속해서 적으면 순차적으로 다운)
# pip install 라이브러리명, 라이브러리명2 ...
pip install requests
Python에서 API호출
자바스크립트에서 fetch와 동일한 기능을 한다고 보면 된다.
import requests # 라이브러리 다운 (pip install requests)
r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()
rows = rjson['RealtimeCityAir']['row']
크롤링 기본
웹상의 html 태그들을 이용하여 필요한 데이터들을 가져온다. (개발자모드를 이용하면 웹상의 html 확인가능)
import requests # 라이브러리 다운 (pip install requests)
from bs4 import BeautifulSoup # 라이브러리 다운 (pip install bs4)
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')
# 하나의 정보만 가져올때
title = soup.select_one('#mainContent > div > div.box_ranking > ol > li:nth-child(6) > div > div.thumb_cont > strong > a')
print(title.text) # 내용을 크롤링 할때
soup.select('태그명[속성="값"]')
print(title['href']) # 속성을 크롤링 할때
# 포함된 여러 정보를 가져올때
soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')
soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('상위태그명.클래스명 > 하위태그명.클래스명')
lis = soup.select('#mainContent > div > div.box_ranking > ol > li')
title = li.select_one('.link_txt').text # 해당 클래스의 문자
#title = li.select_one('.link_txt').text.strip() # 앞뒤의 공백 제거
#title = li.select_one('.link_txt').text.replace('해당문자를', '이걸로변경') # 특정 문자 변경
DB 연동
크게 SQL과 No-SQL로 구분되며 Python은 주로 MongoDB를 사용한다.
자세한 내용은 DB부분만 따로 내용을 정리해보기.
# MongoDB 연동하기
# dnspython 도메인을 받아 데이터를 송수신할 때 사용하는 라이브러리 (pip install dnspython)
from pymongo import MongoClient # 라이브러리 다운 (pip install pymongo)
# import certifi # 라이브러리 다운 (pip install certifi) - 리눅스 사용시 보안 관련 추가 설정
# ca = certifi.where() # 리눅스 시 추가
client = MongoClient('DB URL')
# client = MongoClient('DB URL', tlsCAFile=ca) # 리눅스 시 추가
db = client.DB명
# 데이터 넣기 { '컬럼':'값' }
doc = {
'name':'영수',
'age':24
}
db.테이블명.insert_one(doc)
# 데이터 가져오기 ( _id 값은 제외하고 출력)
all_users = list(db.테이블명.find({},{'_id':False})) # 전부다 가져오기
all_users = list(db.테이블명.find_one({},{'_id':False})) # 하나만 가져오기
for a in all_users:
print(a)
# 데이터 수정하기 { '컬럼':'값' }
db.테이블명.update_one({'name':'영수'},{'$set':{'age':19}})
# 데이터 삭제하기 { '컬럼':'값' }
db.테이블명.delete_one({'name':'영수'})
단축키(윈도우 - 리눅스)
- 주석 : Ctrl + / = Command + /
- 줄정렬 : Shift + Alt + F = Shift + Option + F
- 줄복사 : Shift + Alt + 아래방향키 = Shift + Option + 아래방향키
- 줄이동 : Alt + 방향키 = Option + 방향키
참조 사이트
https://account.mongodb.com/account/login
Cloud: MongoDB Cloud
account.mongodb.com
'생각정리 > 항해99' 카테고리의 다른 글
[필수 트랙] SQL 1일차 (0) | 2023.08.03 |
---|---|
웹개발 종합반 5주차 (0) | 2023.07.23 |
웹개발 종합반 4주차 (0) | 2023.07.21 |
웹개발 종합반 2주차 (0) | 2023.07.18 |
웹개발 종합반 1주차 (0) | 2023.07.17 |