# Flask
[WEB]CORS 란
웹서버를 만들다보면은 마주치는 여러가지 문제가 있습니다. 그 중 하나가 바로 CORS인데요 오늘 작업한 내용은 CORS이기 때문에 해당 내용을 정리할려고 합니다. 이번에 JOINUS 작업을 하면서 기존 회사에서는 만들어진 작업을 하느라 생각하지도 못했던 부분인 CORS 문제가 발생했습니다. 처음에는 이게 뭔가 싶어서 일단은 작업을 진행을 했어야 했기에 모든 호출을 허용을 해주었으나 슬슬 정상적으로 베포를 해야할 시기와 와서 CORS에 대해서 찾아보고 등록을 하고 있습니다. CORS를 알아보기에 앞서 먼저 알아야 하는 개념이 있습니다. 바로 SOP(Same Origin Policy) 인데요. 이것은 내가 접속한 사이트에서 호출한것 외에 다른 사이트들의 접속을 막는 겁니다. 예를 들어 localhost != 에서 https://test.site 를 호출을 했다면 해당 호출은 막히게 됩니다. https://test.site 에서 호출한 https://test.site만 원래대

플라스크 MVC 디렉토리
📌Changing Modeling MVC 📌MVC? Model, view, controller의 약자로 정답처럼 무조건 사용해야하는 형식이 아닌 사람들이 보았을 때, 코드를 유지보수하기 쉬운 형식으로 자리잡은 하나의 매커니즘 같은 것이다. 이렇게 코드를 구성하여 각각의 모듈과 변수들을 저장하게 되었을 때, 타인이 보아도 보기 쉽고, 내가 보아도 보기 쉬우며, 코드의 오류 수정 및 기능 추가 등등의 다양한 작업을 보다 협업할 때 쉽게 사용하기 용이하다는 장점이 있다. 📌Model 데이터를 관리하고 조작하며, 데이터 변경에 따른 애플리케이션의 상태 업데이트를 담당합니다. 모델은 주로 데이터베이스와 상호 작용하거나 데이터를 다루는 메서드 및 함수를 정의합니다. 데이터베이스의 형태에 따른 클래스를 정의해 객체의 형태로 변환하고 Repository => Model 을 통해 데이터베이스에 직접적으로 접근하여 값을 추가, 변환, 삭제, 혹은 받아오는 작업을 수행한

TIL - Flask
💽Flask 📚배운 강의 내용 > * Flask > * flask를 사용해 기본적인 앱 작성하기 > * Example : Coffee Shop Menu API 구축 > * 과제 : CRUD(Create, Read, Update, Delete) 구현하기 📌Flask Flask는 Python 기반 마이크로 웹 프레임워크이다. Django 같은 프레임워크라고 생각하면 좋다. 굉장히 가볍고 작은 프로젝트에 효율적이다. flask를 설치하기 전에, 먼저 가상환경을 세팅하고자 한다. 다양한 모듈들을 한 환경에 설치해 관리하면 프로젝트끼리 상충되는 버전이 있을수도 있고 이래저래 귀찮은 일이 생길 수 있기 때문에 각 프로젝트마다 가상환경을 따로 관리하는 것이 편하다. cmd창을 열어 위 virtualenv를 다운로드 해주고 원하는 폴더에서 가상환경을 작동시킨다 위 명령어 역시 cmd창에서 작동시키면 이제 가상환경이 작동된 상태이다. 설치가 완료되었다. 이제 p

웹 사이트로 구현해보자!
📌 코딩이 다가 아니다! 이제껏 우리가 만든 프로그램을 나혼자서만 돌리면 뭐하겠느냐! op.gg까지는 아니더라도 뭔가 사용하는 느낌이 들어야한다. 그렇기에 오늘 포스팅을 준비해온 것은 로컬사이트(다른 사용자도 접속한 링크를 짤 수 있으나, 아직 보안문제에 대해 해박한 것이 아니기 때문에 로컬로만 진행해보았다.)로 내가 만든 프로그램을 실제와 유사하게 출력값을 화면에 띄우도록 할 것이다! 그렇게 하기 위해서 필요한 준비물은 FLASK 와 HTML이다. 어떤 방식으로 진행해야할지 몰라 막연하게 챗gpt에게 물어본 뒤, 돌아온 답변의 언어 형식으로 만들었다. 처음 배우는 언어와 모듈이기 때문에, 중간에 느릿느릿 그리고 개념을 이해하는데 조금 시간이 걸렸다. 하지만 그 만큼 새로운 희열을 느끼는 결과물을 만들었으니 매우 만족한다! 걸음마를 떼는 단계이겠지만 ㅠㅠ... 📌 FLASK에 스며들기 Flask는 Python 웹 애플리케이션을 개발하기 위한 경량 마
Django vs Flask
Django 와 Flask Python 기반 프레임워크(framework) 프레임워크 참조 Web application 을 개발하고 관리하는 도구 Django Full - stack Framework 가벼운 프레임워크 개발자가 모든 것을 세팅 MTV(Model- Templates-View) 아키텍처 장점 1) 다양한 기능들이 있어 프로젝트 구조 설정이 빠르고 높은 생산성 제공 2) 큰 규모의 웹 어플리케이션 기능을 다루는데 적합 3) 보안 및 인증이 있어 보안에 강함 단점 1) 무거운 구조로 오버헤드가 있을 수 있음 2) 학습이 상대적으로 어려움 사용처 대규모의 복잡한 기능, 기술적으로 고도의 설정이 필요한 경우 Flask 특징 1) Micro
python flask를 이용한 미니 프로젝트(1)
일단 프로젝트 설명은 차량 번호를 조회했을 때 그 차량 소유주의 번호가 뜬다. 그럼 우리는 언제나 항상 차량 위에 핸드폰 번호를 올려두지 않아도 된다. 그러면 자신의 번호가 외부에 노출이 될 확률이 적어지므로 흉흉한 이 세상의 자신의 개인정보를 조금이나마 지킬 수 있지 않을까 생각하고 기획하였다. 문제점 일단 내가 제일 먼저 하고 싶었던 것은 차량 번호를 조회하였을 때 그 사람의 직접적인 번호가 나오는 것이 아니라 일회용 가상 번호가 나와 개인정보를 완벽히 보호할 수 있는 효과를 누리고 싶었으나 미니 프로젝트 특성 상 가상 번호를 발급 받는 api는 유료로 확인이 되었다..그래서 어쩔 수 없이 일단 가상 번호는 포기하게 되었다. 차량의 번호를 조회하면 사용자가 등록하지 않아도 그 차량 번호에 맞는 전화번호가 나타나기를 바랬다. 그러나 생각해보니..그것도 개인정보기에 사용자가 등록하지 않으면 조회를 할 수가 없다. *문제점이 있지만 그래도 대안이 다 있기에..
Windows + Flask + Apache
2023-08-28 일 기준 나는 사용하지 않지만 문제를 해결해서 한번 적어본다 windows 환경에서 apache와 flaks 를 연동시키는데 있어서 아무리 따라해봐도 해결이 되지 않았다. 결론적으로 python path 문제였는데 많은 사람들에게 도움이 되었으면 해서 적어본다. 필요한 환경 빠르게 알아보는 문제 상황과 해결법 * 아나콘다 환경에서도 똑같다* 1. Windows Apache https://www.apachelounge.com/download/ 에서 다운로드 받은 apache 압축파일을 압축을 푼 후 C: 에 Apache24 폴더만 옮긴다. 그 후 C:\Apache24\ 를 환경변수를 추가해준다 2. Python Flask 여기서 나는 사실 Anaconda 환경에서 진행을 하였지만 혹시나 싶어서 python을 따로 설치를 한 후 진행을 하였다. Version : 3.8.6 버전은 충돌이 날 수

플라스크로 네이버 SMS 문자메세지 전송하기
배경 플라스크에서 네이버클라우드 ncloud api로 문자 메세지를 전달하는 글입니다. 요즘 사고가 났을 경우 신고를 해주는 블랙박스 프로젝트를 진행하고 있습니다. 블랙박스가 119에 바로 문자 메세지를 바로 보낼 수는 없고, 소켓통신으로 연결된 서버가 대신 119나 지인에게 메세지를 전달하는 프로세스입니다. ai model이 이식된 프로젝트라서 파이썬을 이용했기 때문에 플라스크를 서버로 사용했습니다. why ncloud? 50건까지 무료이기 때문입니다. 50건을 초과하는 경우 건당 9원씩 지불해야 합니다. sms 플랫폼 관련된 서칭을 해보면, 많은 사람들이 twilio를 추천합니다. api를 쉽게 사용하기 때문이라고 합니다. 저 역시도 twilio를 먼저 사용해보려고 했습니다. 하지만 가입하자마자 아이디가 suspend 되었습니다. 메일로 어떤 프로젝트를 진행하고 있는지, 프로젝트 도메인을 제공해 줄 수 있는지, 관련된 깃허브가 있는지 물어보고 요구했습니다. 하지만

Python flask 기초
가상환경 만들기 github라는 폴더를 만들어서 venv라는 가상환경을 만들어준다 flask 만들기 웹서버 배포 calc_form.html이라는 서버로 이동을 해라 route가 이동시켜줌 계산기 만들어주기 form 액션이 calc.py라는 파일로 보내라는 action의 설명 num1 num2로 받아주는 함수로 request로 작성하고, 결과창
[AI 웹개발 취업 캠프 - 정보통신산업진흥원] Udemy - Python FLASK로 웹사이트 만들기(2)
Flask로 웹페이지 만들기 (2) 템플릿 변수에 대해 Flask의 render_template 함수를 사용해 HTML 파일을 랜더링 할 수 있음 Jinja 템플릿 엔진을 통해 Python 변수를 HTML 템플릿에 직접 삽입 가능함 {{}} 이중 괄호문 을 사용해 HTML 템플릿에 변수를 삽입 템플릿에는 문자열, 목록, 딕셔너리 등 다양한 자료형 삽입 가능함 render_template 함수 내에서 원하는 파라미터(변수)를 설정해 템플릿에 전달할 것! 템플릿에서 기본적인 제어 흐름 논리 제어 흐름 구문: if, for와 같은 제어 흐름 구문은 {% ... %} 형태로 사용함. for문 활용 : Jinja2에서는 Python의 for문과 유사한 문법으로 HTML 안에서 반복 작업을 수행할 수 있음. 이때 {% for item in mylist %}와 같은 구문을 사용하며, {% endfor %}로 f
Flask - 팬명록
EXAMPLE) Project 4. [팬명록] 1) Flask 폴더 구조 만들기 1) 프로젝트 폴더(fan) 생성 2) 프로젝트 폴더 안에 app.py 파일 생성 3) 가상환경(venv) 만들고 활성화 4) 패키지 설치 (flask, pymongo, dnspython, requests, bs4,) pip install flask pymongo dnspython requests bs4(여러 개를 설치할 때는 띄어쓰기로 구분) 5) templates 폴더 생성 하고 index.html 파일 생성 2) 서버(app.py) 3) 클라이언트(index.html) script 함수부분 4. 프로젝트 준비 - mongoDB Atlas 창 띄워두기  Project 3. [버킷리스트] 1. Flask로 만들 프로젝트 폴더 구조 만들기 1) 프로젝트 폴더(BUCKET) 생성 2) 프로젝트 폴더 안에 app.py 파일 생성 3) 가상환경(venv) 만들고 활성화 4) 패키지 설치 (flask, pymongo, dnspython, requests, bs4,) pip install flask pymongo dnspython requests bs4(여러 개를 설치할 때는 띄어쓰기로 구분) 5) templates 폴더 생성 하고 index.html 파일 생성
Flask - 스파르타피디아
EXAMPLE) Project 2. [스파르타피디아] 1. Flask로 만들 프로젝트 폴더 구조 만들기 1) 프로젝트 폴더(PEDIA) 생성 2) 프로젝트 폴더 안에 app.py 파일 생성 3) 가상환경(venv) 만들고 활성화하기 4) PEDIA 폴더 안에 templates 폴더 생성 5) templates 폴더 안에 index.html 파일 생성 6) 패키지 설치 (flask, pymongo, dnspython, requests, bs4,) pip install flask pymongo dnspython requests bs4(여러 개를 설치할 때는 띄어쓰기로 구분) 2. [스파르타피디아] - 조각 기능 구현해보기 스파르타피디아에서 나는 URL, 별점, 코멘트만 작성했는데 기록
Flask - 화성땅 공동구매
EXAMPLE) Project 1. 화성땅 공동구매 1. Flask로 만들 프로젝트 폴더 구조 만들기 1) 프로젝트 폴더(MARS) 생성 2) 프로젝트 폴더 안에 app.py 파일 생성 3) 가상환경(venv) 만들고 활성화하기 4) Mars 폴더 안에 templates 폴더 생성 5) templates 폴더 안에 index.html 파일 생성 ` 6) 패키지 설치 (flask, pymongo, dnspython) pip install flask pymongo dnspython (여러 개를 설치할 때는 띄어쓰기로 구분) 2. 프로젝트 준비 - app.py 준비 3. 프로젝트 준비 - index.html 준비하기 4. 프로젝트
Flask
Flask Flask는 Python의 마이크로 웹 프레임워크이다. 컴퓨터 프로그래밍에서 프레임워크는 소프트웨어의 개발에 필수적이고 표준적인 부분에 해당하는 설계와 구현을 재사용 가능하도록, 일련의 협업화된 형태의 클래스들로 제공하는 반제품 소프트웨어 모듈이라고 볼 수 있다. 간단하게 말하면, 서버를 구동시켜주는 편한 코드 모음이라고 볼 수 있고 웹 서버를 구동하는데 필요한 복잡한 코드들을 쉽게 가져다 쓸 수 있다. 프레임워크는 명확하게 정의된 API를 가지고 코드를 재사용 가능한 형태로 구조화한다는 점에서 라이브러리와 비슷하지만 라이브러리는 특정 언어를 더 쓰기 편하게 많은 기능을 미리 만들어 제공하는 것이고, 프레임워크는 특정 언어를 특화된 구조로 체계화 한 것이다. 쉽게 말해, 특정 언어를 이용해서

python / flask를 이용한 기본 crud
파이썬 pip / 가상환경에서 이어지는 내용 flask에서 안내하는 프로젝트 마지막의 디렉토리 모습입니다. templates 디렉토리안에 index.html를 생성하고 app.py에서 연결해줍니다. Flask 문서확인 연결 확인 http://localhost:5000에서 html과 app.py가 연결됐는지 확인 > crud에서 가장 기본적인 to do list를 만들어봅니다. css는 기본적인 틀을 제외하고 생략합니다. crud / c 생성 데이터를 읽을 수 있는 api를 먼저 작성합니다. 즉, 데이터 저장이 먼저입니다. >클라이언트가

python / pip, .venv 가상환경
프론트/백의 기본적인 흐름을 정리하기 위한 내용에서 백의 가상환경 세팅에 대한 내용 1. 가상 환경 세팅 먼저 가상 환경 세팅이 필요합니다. >가상 환경 세팅의 이유는 JS의 NPM을 예로 들면 패키지 매니저가 각 프로젝트 별로 패키지를 설치/지원하는 반면 파이썬의 pip라는 패키지 매니저는 시스템 전역으로 패키지를 설치하기 때문에 각 프로젝트 별로 의존성 충돌이 있기 때문입니다. Node.js/NPM은 dependency / devdependency*으로 프로젝트에 의존성이 있는 패키지와 아닌 패키지를 구분합니다. *파이썬의 패키지 매니저 pip(Package Installer for Python)는 가상환경을 세팅해주지 않으면 모든 파이썬을 사용하는

[AI 웹개발 취업 캠프 - 정보통신산업진흥원] Udemy - Python FLASK로 웹사이트 만들기
Udemy강의 python FLASK로 웹사이트 만들기 본 강의는 섹션 1 ~ 섹션 17 까지 이루어있으며 각 섹션에 따라 HTML, CSS, 부트스트랩, 파이썬 , 플라스크 섹션으로 나뉘어져 있다. 이 강의에서는 이미 알고있는 내용에 대해선 넘어가도 좋다고 명시되어 있기 때문에 이 포스팅은 섹션 7까지 내가 몰랐던 내용에 대해 포스팅을 진행한다. 부트스트랩4 지금까지 웹사이트를 만들 때 바닐라 CSS, 바닐라 JS밖에 사용하지 않았다. 실제로 현재 진행하고 있는 NIPA 백엔드 과정에서도 바닐라를 사용하였는데, 이 강좌에서는 부트스트랩에 대한 내용이 살짝 언급된다. getbootstrap.com 부트스트랩을 이용하면 프론트엔드 단에서 멋지게 편하게 빠르게 보이게 해 줄 것이라고 한다. 부트스트랩을 사용하는 방법은 두가지가 존재한다. CDN(콘텐츠 전송 네트워크)를 사용 하는 법 자체 CSS파일을 설치해 수동으로 링크하는 방법

[AWS] Github Actions를 이용한 EC2로의 Flask CI/CD
해당 글은 아래의 tistory를 참고했습니다. https://rachel0115.tistory.com/entry/Github-Actions%EB%A1%9C-CICD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-EC2-S3-CodeDeploy 이번 프로젝트에선 Python Flask를 이용하여 서버를 구축했다. 이전부터 하고싶었던 CI/CD작업을 해보고자 Github Action을 이용해서 EC2 인스턴스에 Flask 서버를 배포하는 방법을 찾아봤지만, eb에 배포하는 내용들밖에 없었다. 결국엔 Java를 사용해 CI/CD를 구축하신 분의 블로그를 참고하여 Python의 Flask를 배포해보기로 했다. 정말 많은 우여곡절들이 있었지만, 위의 블로그가 기본 인프라 구축에 많은 도움이 됐다. CI/CD 구조 
[ TIL # 7 ] 항해99 1일차 - 로그인 회원가입 session
Session 이란? 세션은 웹 어플리케이션에서 사용자의 상태를 유지하고 관리하는 데 사용되는 도구입니다. 사용자가 웹 사이트에 접속하여 로그인을 하거나 정보를 입력할 때, 이 정보들은 세션을 통해 임시적으로 저장되어 사용자 경험을 향상시킵니다. Session의 동작 방식 사용자가 로그인을 하면, 서버는 사용자에게 고유한 세션ID를 부여합니다. 이 세션 ID를 사용하여 서버는 해당 사용자의 데이터를 저장하거나 조회할 수 있습니다. 세션은 일정 시간 동안 유지되며, 사용자가 웹 사이트를 계속 이용하는 동안에는 계속해서 사용됩니다. 사용자가 로그아웃하거나 세션이 만료되면 해당 세션에 저장된 데이터도 함께 사라집니다. 먼저 session을 import해줍니다 그리고 `app.secret_k