목록Python/flask (7)
가오리의 코딩일기
Pluggable View → 플라스크는 기본적으로 데코레이터와 함수 기반으로 API를 작성하며 이를 함수 기반 뷰라고 한다 → 플러거블 뷰(pluggable View)는 장고의 generic view에서 영향을 받아 만들어졌다 # 함수 기반 뷰 @app.route('/users') def userList(): users = User.query.all() return render_template('uers.html', users=users) # 플러거블 뷰 class UserAPI(View): methods = ['GET', 'POST'] def dispatch_request(self): users = User.query.all() return render_template('users.html', obj..
💡 간단한 HTTP API를 구축하는 과정 🧩 app.py 더보기 from flask import Flask app = Flask(__name__) """ POST: 클라이언트가 보낸 데이터를 받는 데에 사용 GET: 데이터를 다시 돌려주는 데에만 사용 /shop : 새로운 shop을 생성하거나 shop 목록을 보여준다 /shop/smith-flower-shop : shop들 중, smith-flower-shop이라는 이름을 가진 것을 보여준다 /shop/smith-flower-shop/item : smith-flower-shop에 새로운 item을 생성하거나 smith-flower-shop에 있는 item들 목록을 보여준다 """ # POST /shop : name이라는 데이터를 받아서 새로운 shop..
🔗 파일위치 확인 더보기 💡 로그인을 위한 준비 🧩 POST 방식 → 회원가입에서는 새로운 유저를 추가하고 로그인에서는 아이디와 비밀번호 정보가 맞는지 확인해서 맞으면 로그인 시켜준다. → 회원가입과 로그인 모두 폼에서 사용자의 데이터를 받아오는 과정이 있는데 폼으로부터 데이터를 POST 방식으로 받아와야 한다. → 그래서 login.html과 signup.html의 Main Content에 있는 로 수정해준다. → 만약 두 곳 다 POST라면 생략하면 된다. 🔗 응답 상태 코드 더보기 → 응답 코드는 5개의 클래스(분류)로 구분된다. → 1XX : 정보, 요청을 받았으며 프로세스를 계속한다 → 2XX : 성공, 요청을 성공적으로 받았으며 인식했고 수용했다 → 3XX : 리다이렉션, 요청 완료를 위해 추..
✏️ 터미널에 가상환경 연결하기 더보기 → PyCharm이 아닌 VSC 사용중 → blog/__init__.py 생성 → python3 -m venv venv (가상환경 생성) → command+shift+p (파이썬 인터프리터 설정) → 터미널 시작? 부분에 (venv)가 없다면 control+shift+~ (새 터미널) 💡ORM 사용 예정 → Flask-SQLAlchemy, Flask-Login 설치 ✏️ ORM: Object-Relational Mapping → 데이터베이스에 데이터를 저장하는 테이블을 파이썬 클래스로 만들어 관리하는 기술로 이해해도 좋다 → 객체 지향적 코드로 인해 더 직관적이고 비즈니스 로직에 집중할 수 있도록 도와준다 → 재사용 및 유지보수의 편리성이 증가하고 DBMS에 대한 ..
💡Python DB API(PEP 249) ✏️ API: Application Programming Interface → 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 → 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다 ✏️ 인터페이스 → 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면 → 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템 ✏️ PEP: Python Enhancement Proposal → 파이썬을 개선하기 위한 제안서 ✏️ PEP 249 → Python 모듈 간의 유사성을 장려하기 위해 정의되었다 💡SQLite3 모듈 ✏️ SQLite3 → MyS..
💡 라우팅(Routing) → 플라스크에서 함수는 각각의 주소를 입력해서 들어오는 요청을 담당하는 담당자 → 어떤 요청을 어떤 함수가 응답할 것인가를 연결시켜주는 작업이 필요한데 이런 작업을 라우팅 → 그런 작업을 기술하는 어떤 것을 라우터라고 한다 → 데코레이터(장식자)를 사용해서 route() 함수에 URL을 바인딩한다 → @로 시작하는 것들, 장식하는 도구, 함수를 장식한다고 해서 이런 이름이 붙었다 # 사용자가 어떤 경로를 입력하지 않고 접속하면 인덱스 함수가 응대하라고 담당자를 지정한 것 @app.route('/') def index(): return 'Welcome!' # /hi/로 접속했을 때 hi() 함수가 응대해서 hi, {username}를 응답한다 @app.route('/hi/') d..