TIL_240127

라미·2024년 1월 28일

TIL

목록 보기
3/25
post-thumbnail

Python

Python 다운로드 : https://www.python.org/ (path check 해줄것!)
VS Code Terminal : default teminal git bash로 설정


Python 가상 환경 생성

라이브러리 사용

pip(Package Installer for Python): Python 패키지 설치를 도와주는 명령어

  • requeats 패키지 설치, 터미널에 명령어 입력
    pip insatll requests

requests

requests : HTTP 요청을 보내는데 사용 되는 외부 라이브 러리 외부 api와 통신이 필요할 경우 requests lib 사용해야 한다

  1. 설치 터미널 명령어 : pip install requests

  2. 사용 .py 파일 import requests 추가

  3. GET 요청

    import requests
    
    response = requests.get('url')
    
    print(response.status_code) # HTTP 상태 코드
    print(response.text) # 응답 본문
  4. 파라미터, 헤더 전달

    import requests
    
    params = {'param1': value1, 'param2':,value2}
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}
    
    response = requests.get('url', params=params, headers=headers)
    
    print(response.text)
  5. POST 요청

  import requests
  
  data = {'key1':'value1',key2':'value2'}
  response = requests.post('url',data=data)

  print(response.text) # 응답 본문
  1. JSON 데이터 처리
  import requests
  
  json_data = {'key1':'value1',key2':'value2'}
  response = requests.post('url',json=json_data)

  print(response.json()) # JSON 응답을 파이썬 객체로 변환
  1. 에러 처리
  import requests

  response = requests.get('https://www.example.com/nonexistent-endpoint')

  if response.status_code == 404:
      print('페이지를 찾을 수 없습니다.')
  elif response.status_code == 200:
      print(response.text)
  else:
      print('다른 상태 코드:', response.status_code)
  1. 세션 유지
  import requests

  session = requests.Session()

  response = session.get('https://www.example.com/login', params={'username': 'user', 'password': 'pass'})
  # 이후의 모든 요청은 같은 세션을 사용하여 쿠키 등을 유지합니다.

웹스크래핑
BeautifulSoup 사용


Flask

flask 폴더 기본구조

/myflaskapp
    /venv                 # 가상환경 디렉토리 (가상환경을 사용하는 경우)
    /static               # 정적 파일 (CSS, JavaScript, 이미지 등)
    /templates            # HTML 템플릿 파일
    /app
        __init__.py       # Flask 애플리케이션 초기화
        routes.py         # URL 라우팅 및 뷰 함수 정의
    config.py             # 앱 설정 파일
    run.py                # 애플리케이션 실행 파일

flask 코드 기본 구조

#flask lib 사용하기 위해 import
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()
  1. VS Code 가상 환경 세팅
  2. Flask lib install 터미널 : pip install flask
  3. 강의 들어보니 자바에서 controller 의 역할을 한다. 주소에 요청이 들어오면 반환.
# render_template -> flask 기능으로 요청이 들어오면 정적 페이지 반환
from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def home():
    # app.route()에 요청이 들어오면 render_template()에 있는 내용 반환
    return render_template('index.html')

@app.route('/mypage')
def mypage():
    return 'This is mypage'

if __name__ == '__main__':  
    app.run(debug=True)
from flask import Flask, render_template, request
@app.route('/movie')
def movie():
	
    # flask의 request : 클라이언트로부터 http 요청에 관한 정보를 담고 있따.
    # movie.html 에서 query라는 이름으로 보낸 데이터
    query = request.args.get('query') 

    # 영화진흥의원회 api에 query 데이
    res = requests.get(
        f"http://kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.json?key=f5eef3421c602c6cb7ea224104795888&movieNm={
            query}"
    )
    rjson = res.json()
    movie_list = rjson["movieListResult"]["movieList"]
    print(movie_list)
    return render_template('movie.html', data=movie_list)

0개의 댓글