본문 바로가기

flask

(5)
flask+uwsgi+nginx 로컬에 띄우기 useradd www-data 로 유저를 추가한다. passwd user 로 비밀번호를 설정한다. usermod -a -G www-data www-data (앞에가 그룹, 뒤에가 유저다) www-data 유저와 그룹을 만드는 이유는 www-data 유저와 그룹이 nginx 소켓 파일을 소유하기 때문이다. chmod -R 777 [디렉토리] 로 작업 폴더의 권한을 그룹 유저와 다른 유저에게도 디렉토리 안의 파일에 읽기, 쓰기, 실행 권한까지 준다. nginx conf 파일을 수정해준다. server { location / { include uwsgi_params; } location /hello { include uwsgi_params; } } 같이 사이트의 하위 주소를 명기한다. 다음은 Flask, uW..
AI 부트캠프 3달 차 : 웹페이지를 만들어 배포하다 🚀 Intro 3달차에는 conda, pipenv, 도커 등으로 가상환경을 만들고, Git으로 원격 레파지토리에서 팀 단위로 협업할 수 있는 방법, SQL(sqlite, Postgresql)과 NoSQL(MongoDB)로 데이터베이스를 구상하고 이를 클라우드 환경에서 관리하는 방법, 파이썬 언어로 Flask로 웹앱을 만들고 데이터베이스와 연결하여, heroku를 통해 배포하는 과정을 배웠다. 정말 빡센 과정이었다...! 하지만 웹서비스를 기획하고 만드는 건 생각보다 내 적성에 맞는다는 걸 깨달은 달이기도 했다. 📊 데이터셋 선정 다양한 데이터셋을 다뤄보는 게 포트폴리오에 좋을 것 같아서 2달 차에 다룬 영화 데이터 말고 다른 데이터를 다뤄보고 싶었으나 촉박한 프로젝트의 일정상, 영화 데이터를 이용해 머신..
flask-mongoalchemy vs mongoengine MongoDB 데이터베이스 기반으로 flask app을 만드는데 필요한 라이브러리로 pymongo, MongoAlchemy, MongoEngine을 많이 쓰는 것 같다. 뭔 차이야? 하고 궁금해서 찾아보니 MongoAlchemy는 SQLAlchemy의 비슷한 버전으로 나온 ORM-like layer이다. PyMongo 위에서 작동한다. MongoAlchemy 튜토리얼이 flask-alchemy를 배운 나한테 익숙해서 사용해볼까 싶었는데, ModuleNotFoundError: No module named 'flask.ext' 에러가 나서 찾아보니 깃헙 코드 업데이트가 4년 전에서 멈춰있다. 흠... 패스. 다음은 MongoEngine이다. Pymongo의 위에서 ORM-like-layer로 작동하는 건 똑..
flask에서 request.args.get()의 의미 requests와 request의 차이 request : from flask import request requests : pip install requests → pip로 설치한 내부 라이브러리. HTTP GET 자바스크립트의 object는 파이썬 딕셔너리와 비슷함. 요청이 들어오면 응답을 하는데, json(Javascript Objext Notation) 형태로 주고받을 수 있다. requests.get('사이트주소') → 사이트에 http 요청 보내기. 정상적으로 실행되면 http 응답 객체인 이 리턴됨 response = requests.get('사이트주소') 식으로 만들어 response.json() 하면 딕셔너리를 볼 수 있다. 이를 또 변수화해 json_data = response.json(..
Flask-sqlalchemy "One or more mappers failed to initialize" 오류 One or more mappers failed to initialize - can't proceed with initialization of other mappers. Triggering mapper: 'mapped class User->user'. Original exception was: relationship 'tweets' expects a class or a mapper argument 라는 오류가 떴다. 읽어보니 매핑 관계에서 문제가 있었다. 해결책 1. 테이블 간의 관계 relationship을 꼼꼼하게 봐준다. 처음에 class Tweet(db.Model): __tablename__ = 'tweet' id = db.Column(db.Integer(), primary_key=True) te..