bravo my life!

[항해99][Python][3주차] 내용 정리 본문

Study/항해99

[항해99][Python][3주차] 내용 정리

losajjang 2022. 1. 28. 10:46
728x90

Python을 이용해 back end의 기초적인 부분을 공부할 수 있는 3주차로 구성이 되어 있었고,

실제로 MongoDB를 이용해 데이터의 저장, 추가, 불러오기, 찾기, 바꾸기, 지우기를 할 수 있었다.


1. MongoDB 에러 발생 해결법

어려운 부분은 크게 없었는데 의외의 복병이 있었다.

Python에서 MongoDB로 데이터 조작을 위한 실행이 되지 않았다.

m1 pro 맥북때문인지, 통신회선의 문제인지는 모르겠으나 스파르타코딩클럽 FAQ에서 문제를 해결할 수 있었다.

해결은 아래와 같다.

#mongoDB 
#-기본코드

from pymongo import MongoClient 
client = MongoClient('mongodb+srv://test:sparta@cluster0.내주소.mongodb.net/내DB명?retryWrites=true&w=majority’) 
db = client.dbsparta


#-보안코드 추가
#아래 에러 발생시
#pymongo.errors.ServerSelectionTimeoutError: ~ [SSL: CERTIFICATE_VERIFY_FAILED]~
#certifi 패키지설치 후, 아래 코드 추가부분 참조

from pymongo import MongoClient 
import certifi

ca = certifi.where()

client = MongoClient('mongodb+srv://test:sparta@cluster0.내주소.mongodb.net/내DB명?retryWrites=true&w=majority', tlsCAFile=ca)
db = client.dbsparta

2. Pytion 기초

  ● 기념비적인 나의 첫 파이썬 코딩.

print('hello sparta!!')

  ● 변수, 자료형, 함수, 반복문, 조건문을 잘 활용할 것.

  ● 기초 문법.

     변수 연산

a=3
b=6
print(a+b)
#출력값 9

     자료형

       list형 []

a_list=[]
a_list.append(1)
a_list.append([2,3])
print(a_list)
#출력값 [1,[2,3]]

     자료형

       dictionary형 {}

a_dict={}
a_dict={'name':'bob','age':35}
a_dict['height']=178
print(a_dict)
#출력값 {'name':'bob','age':35,'height':178}

     함수

def sum(a,b):
    return a+b
result=sum(1,2)
print(result)
#출력값 3

     조건문

def is_adult(age):
    if age > 20:
      print('성인')
    else:
      print('청소년')
is_adult(35)
#출력값 성인

     반복문

fruits=['사과','배','감','귤']
for fruit in fruits:
    print(fruit)
#출력값 사과, 배, 감, 귤이 하나씩 꺼내어 찍힌다.
fruits=['사과','배','감','귤','사과','배','감','귤']
count=0
for fruit in fruits:
    if fruit=='사과':
      count+=1
print(count)
#출력값 2. 사과의 갯수를 세어 보여줌
people=[{'name':'bob','age':35},
        {'name':'carry','age':38},
        {'name':'john','age':17}]
for person in people:
    print(person['name'],person['age'])
#출력값 모든 사람의 이름과 나이가 출력됨.
people=[{'name':'bob','age':35},
        {'name':'carry','age':38},
        {'name':'john','age':17}]
def get_age(myname):
    for person in people:
       if person['name']==myname:
          return person['age']
    return '해당하는 이름이 없습니다.'
print(get_age('bob'))
#출력값 35

3. requests 사용해보기

import requests

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

rows=rjson['RealtimeCityAir']['row']
for row in rows:
    gu_name=row['MSRSTE_NM']
    gu_mise=row['IDEX_MVL']
    if gu_mise < 80 :
        print(gu_name)
#출력값 미세먼지 수치가 80이하인 구 이름을 표시.

4. MongoDB의 기초

# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
#위와 동일 코드
db.users.insert_one({'name':'bobby','age':21})

# 한 개 찾기 - 예시
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'})