목록Python/Flask (13)
취미와 밥줄사이
1. 라우팅 flask에서 url 요청 처리는 다음과 같은 단계를 거칩니다 url 호출 > flask url dispatcher > 뷰함수 호출 > 결과 응답 2. URL 라우팅하기 @app.route 데코레이터에 도메인을 제외한 서브 경로를 기술 Http method를 두번째 파라미터로 기술 3. view함수 별칭 지정하기 라우팅 기술시, 아래와 같이 endpoint 파라미터를 추가할 수 있음 view함수 별칭은 url_for 함수에 지칭하는 이름으로 사용가능 지정하지 않으면 default 함수 이름이 사용됨 @app.route('/hello', endpoint='as') def hello(): 'hello world' 4. url_for 함수 url_for 함수는 인자로 주어진 endpoint에 해당..
1. Flask란? 경량 프레임워크 장고의 경우 웹 애플리케이션 개발에 필요한 대부분의 컴포너트 프레임워크 레벨에서 제공, 대부분 기능이 외부 라이브러리 없이 프레임워크 내에서 구현 가능 flask 핵심 라이브러리만으로 구성되어 가볍고 확장성이 높음 2. Flask 3대 구성요소 WSGI(Web Server Gateway Interfac) 코어: 웹서버와 파이썬 프로그램 간의 인터페이스 werkzeug(벡자이그): URL 라우팅 지원하는 미들웨어 jinja2: 템플릿 출력 라이브러리 3. 글로벌 객체 g from flask import g # g는 웹 애플리케이션이 동작하는 동안 유지되어야 하는 글로벌 데이터 값을 저장합니다. # 단, 글로벌 객체에 저장한 속성에 다수의 동시접근이 이뤄지면 애플리케이션 ..
1. 요청 파라미터 가져오기 요청 파라미터는 werkzeug.datastructures.MultiDict 타입으로 전송됨 파라미터가 (키, 값)으로 된 튜플로 구성된 리스트 타입으로 서버에 전송 2. GET 방식 get 방식은 아래와 같이 flask에서 제공하는 request 객체의 args 함수 호출 get 함수의 첫 번째 인자는 요청 파라미터 명, 두 번째 인자는 "1'에 해당 요청 파라미터가 없을 시 초기 값, int 타입을 의미 from flask import requet request.args.get("article", "1", int) 3. POST 방식 post 방식은 get 방식과 다르게 request 객체의 form 함수 사용 request.form.get("article", "1", i..
에러 문구 ServerSelectionTimeoutError: localhost:27017:[WinError 10061] 에러 원인 MongoDB가 설치되어 있지 않아서 발생한 에러 해결 방법 MongoDB 설치하기 2021.06.08 - [프로그래밍] - [ Windows ] MongoDB 설치하기 REFERENCE https://stackoverflow.com/questions/59166714/pymongo-errors-serverselectiontimeouterror-localhost27017-winerror-10061-wh pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [WinError 10061] when trying to do ba..
에러 문구 ImportError: cannot import name 'abc' from 'bson.py3compat' 에러 원인 pymongo 라이브러리와 bson 라이브러리가 함께 설치되어 있을 때 발생하는 에러 python 3.7 이상부터는 pymongo 라이브러리에서 bson 자체지원 해결방법 pip uninstall bson pip uninstall pymongo pip install pymongo REFERENCE https://snepbnt.tistory.com/192 [python error] ImportError: cannot import name 'abc' from 'bson.py3compat' MongoDB 라이브러리를 파이썬에서 사용할 경우 나타나는 에러이다. 만약에 bson 라이브러..
발생 상황 flask_wtf 라이브러리를 가상환경에 설치했음에도 불구하고 아래와 같은 에러문구가 발생하면서 스크립트가 실행되지 않았다. 코드러너라는 vscode 확장 프로그램을 통해 코드를 실행하고 있었다. pip freeze와 conda list를 통해서 라이브러리가 설치가 되어있는 것을 확인하였지만 지속적으로 발생하였다. 에러 문구 ModuleNotFoundError: No module named 'flask_wtf' 에러 원인 CODE RUNNER라는 VSCODE 플러그인으로 실행할 때는 가상환경이 아닌 전역환경으로 코드가 실행된다. 터미널에서 가상환경 접속에서 실행하니 문제해결 REFERENCE https://stackoverflow.com/questions/44123973/importerror-..
개발 환경 Python 3.7.10 Flask 1.1.2 Werkzeug 1.0.1 에러 문구 RuntimeError : 비밀 키가 없으므로 세션을 사용할 수 없습니다 세트. 응용 프로그램의 secret_key를 고유 한 것으로 설정하고 비밀. RuntimeError RuntimeError: The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret. 에러 원인 시크릿키가 설정되지 않아서 발생하는 에러이다. 코드를 보면 시크릿키를 설정하였다. 해결 방법 시크릿을 if문 아래 배치하지 않고 전역으로 배치하였더니 잘 동작하였다. REFEREN..