전체 글 56

Flask CORS

Flask만 단독으로 사용하여 웹을 구성하면 사실 의미없는 기능이다. 하지만, 대부분의 프로젝트가 그렇듯 여러 툴을 사용하여 구성하는 경우가 많으므로 CORS를 설정해야 한다. 내 경우에는 Flask로 만들어진 서버에 Vue로 프론트를 구성하였는데, api 호출이 안된다며 cors를 설정해달라는 요청을 받았었다. CORS는 무엇인가? https://evan-moon.github.io/2020/05/21/about-cors/ 이 포스트에 참 잘 설명되어있다. 간단하게 요약하자면 flask 에서 보내는 api를 외부에서 호출할 때, 신뢰가지않는 도메인이라고 판단해서 받아주지 않는다고 생각하면 된다. 왜 신뢰할 수 없는 도메인을 차단하는지는 위의 링크에 나타나있다. 그럼 flask에서 cors를 어떻게 적용시..

python/웹 2021.09.27

[파이썬 크롤러] 나는 로봇이 아닙니다. header

2021.07.21 - [python/크롤링] - [파이썬 크롤러] 웹 크롤러 만들기 이전 게시글에서 잠깐 언급했듯, 각 사이트별로 robots.txt라는 항목이 존재한다. 왼쪽은 https://google.com/robots.txt 의 결과이다. 간단하게 Allow 는 크롤링 허용, Disallow는 허용하지 않는다는 의미인데, 무엇을 허용하고 허용하지 않는다는 말일까? https://searchadvisor.naver.com/guide/seo-basic-robots 친절하게 설명되어있다. 구글은 크롤러에 상당히 엄격하다. 일부만 캡쳐했는데도 Disallow가 상당하고, User-agent 가 * 즉 모든 유저에 대해서 적용된다. 우리도 종종 구글에서 일정한 간격으로 비슷한 패턴을 가지고 검색하게되면 ..

python/크롤링 2021.09.09

[파이썬 기초] try ~ except문

예외처리는 중요하다. 오래 돌려야 하는 코드를 만들다 예상치 못 한 에러에 전부 죽어버릴 수 있으니 이를 미연에 방지해야한다. try ~ except 자, 여러분은 지금 두 수를 입력받아서 나누는 코드를 짠다고 생각하자. a = int(input()) b = int(input()) print( a / b ) 간단하게 생각해보면 위와 같이 짤 수 있다. 하지만 만약 입력하는 값이 숫자가 아닌 문자라면? b가 0이라면? 전자의 경우에는 ValueError, 후자의 경우에는 ZeroDivisionError와 함께 빨간줄이 빠방 하고 나타날 것이다. 저주스러운 빨간색보다 이런 에러를 미리 생각해서 부드럽게 print문으로 바꿔줬으면 좋겠다. 이럴 때 사용할 수 있는 메서드가 try문이다. try: a = int..

python/기초 2021.09.07

[파이썬 기초] 반복문 - enumerate, zip

모든 언어에서 반복문은 중요하다. 가장 먼저 배우는 문법이 변수선언 뒤에 반복문이니까. 자바 개발자인 아는 분께서 반복문에 인덱스를 다음과 같이 작성한 것을 보고 포스팅한다. enumerate i = 0 for item in items: ... ... ... i += 1 위의 코드가 잘못되었다는 말이 아니다. 어디까지나 직관적인 코드고, 파이썬스럽지 않을뿐이니까. 자 위의 코드를 좀 더 파이썬스럽게 고쳐보자 for i,item in enumerate(items): ... ... ... i를 선언하고 더해주는 과정 필요없이, enumerate라는 메서드를 사용하면 하나의 루프가 돌 때마다 i가 1씩 추가된다. 루프를 도는데 인덱스가 필요하다면 이런식으로 코드를 짜보자. zip 우리에게 친숙한 압축 확장자 ..

python/기초 2021.09.07

[파이썬 서버] Flask를 잘 써보자 - Blueprint

이전 포스트에서 플라스크를 이용해서 웹을 구성했다. Hi 밖에 나오지 않지만 일단 구축에 성공했다고 볼 수 있다. 2021.08.17 - [python/웹] - [파이썬 서버] 간단하게 파이썬 웹페이지 만들기 ( Flask ) [1] [파이썬 서버] 간단하게 파이썬 웹페이지 만들기 ( Flask ) [1] 파이썬을 이용하여 웹 서버를 만들어보자 https://flask.palletsprojects.com/en/2.0.x/ Welcome to Flask — Flask Documentation (2.0.x) flask.palletsprojects.com 사용할 패키지는 Flask를 사용할 것이다. 파.. kkiho.tistory.com 만약 서비스가 복잡해지고, 신경써야 할 url이 많아진다면 플라스크를 실..

python/웹 2021.08.19

Docker Build시 에러

도커 파일을 만들어주고, 빌드하는 과정에서 failed to solve with frontend dockerfile.v0 failed to read dockerfile라는 에러메세지가 나왔다. 구글링해보니 LLB 에러는 많이 보이는데 내 에러랑 완벽하게 같은 에러는 없더라. 다른 예제를 같이 보던 바, 빌드에 필요한 도커 파일명이 Dockerfile 이어야 하더라. 딱 저대로 dockerfile (X), yourfile (X), Dockfile(O) 열받던 찰나 빌드에 성공했다.

Docker 2021.08.19

[파이썬 서버] 간단하게 파이썬 웹페이지 만들기 ( Flask ) [2]

서버를 만들었으면 다음은? 데이터를 뿌린다 ( O ) SQLAlchemy 를 이용해서 db를 구성하자. flask는 db기능을 포함하지 않으므로, flask_sqlalchemy를 이용해서 db를 구성해야한다. 우선, 패키지를 다운로드하자. pip install flask_sqlalchemy 이전 포스트에서는 단순히 url을 통해서 텍스트를 화면에 출력했다. 하지만 db를 설계하고 url을 통해서 db를 직접 수정하기 위해서 좀 더 복잡한 코드가 불가피하게 사용된다. 최대한 자세하게 설명해보겠지만, 그래도 어려우면 댓글을 통해 소통해보자. 우선, 이전에 사용된 코드를 보자. from flask import Flask app = Flask(__name__) @app.route('/') def main(): ..

python/웹 2021.08.17

[파이썬 서버] 간단하게 파이썬 웹페이지 만들기 ( Flask ) [1]

파이썬을 이용하여 웹 서버를 만들어보자 https://flask.palletsprojects.com/en/2.0.x/ Welcome to Flask — Flask Documentation (2.0.x) flask.palletsprojects.com 사용할 패키지는 Flask를 사용할 것이다. 파이썬으로 웹 서버를 구동하는 방식은 flask, django 등등 여러가지가 있지만, flask를 다뤄보자. pip install flask pip 명령어를 통해서 플라스크를 인스톨하자. 웹 서버이니 주피터노트북보단 파이참이나 기타 ide를 사용하자. 인스톨 했으면 다 한거다. from flask import Flask app = Flask(__name__) @app.route('/') def index(): re..

python/웹 2021.08.17

[파이썬 크롤러] Tweepy를 이용한 트위터 크롤링 [3]

성공했다. 이 모든 영광을 파파고에게. 이 메일이 왔다면 당신은 트위터API를 사용할 준비가 되었다는 뜻이다. 트위터 개발자포털에 들어가면 위와 같은 화면이 나온다. New Project를 누르면 프로젝트 이름을 설정하고, 어디에 사용 할 것인지. 프로젝트 설명 App의 이름. 위의 과정들을 모두 마쳤다면, 당신의 API key, Secret Key, Breaer Token이 생성된다. 이건 본인만 알고있어야한다. 한 번 발급 이후로는 재발급만 가능하니. 만약 잃어버렸다면, 프로젝트 > 프로젝트 명 > Keys and tokens 에서 재발급이 가능하다. 재발급시엔 기존에 사용되던 키는 사라진다. 키 발급까지 끝났다면, 이제 트위터 크롤링을 위한 첫 스텝을 밟은 셈이다. pip install tweepy..

python/크롤링 2021.08.17
반응형