Server
Flask + gunicorn (uwsgi) + nginx 설치 시 자주 겪는 문제
flask , gunicron + nginx 설치 및 연동 시 자주 겪는 문제!! https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04 https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-18-04 아마도 flask 서버 애플리케이션의 출시를 위해 wsgi를 이용하다보면 위의 문서들을 가장 쉽게 접할 수 있을것이고, 따라하거나 비슷한 문서를 많이 볼 수 있을 것이다. 하지만? 역시 한방에 안되는 건..
[Flask] Error: Failed to find Flask application or factory in module "flask". Use "FLASK_APP=flask:name to specify one.
flask 설치 직후 쉽게 볼 수 있는 에러 문구이다. flask core library들은 설치를 진행할 가상 환경 폴더 내 어딘가에 설치되어 있을 것이고, 우리는 우리가 진행할 프로젝트에서 flask 실행을 맡을 main app(python file)을 만들어주어서 환경설정에 FLASK_APP으로 지정해주어야한다. from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return 'hello world' if __name__ == '__main__': app.run() 프로젝트를 진행하고자 하는 폴더 내에서 위처럼 flask를 실행할 파일을 만든 후, 해당 파일의 경로를 환경설정 FLASK_APP에 지정해주자.
[Python] Gmail을 통해 여러 명에게 HTML 이메일 보내기
📌 Python으로 이메일 보내기 (G-Mail) Python의 내부 라이브러리인 smtplib (SMTP 라이브러리)를 사용하여 HTML을 포함한 이메일을 여러 명에게 보내는 방법을 알아보도록 하겠습니다. 📒 구현 소스 IMPORT import smtplib from email.mime.multipart import MIMEMultipart #from email.header import Header from email.mime.text import MIMEText MIMEText 라이브러리는 메일의 제목과 본문 등을 설정하는데에 쓰이는 라이브러리 입니다. 단순 plain-text 에는 MIMEText가 쓰이며, html이나 image를 포함시켜려면 MIMEMultipart를 사용하여야합니다. Heade..
[Django] AWS S3 Public 권한 설정하기
📌 AWS S3 Public 권한 설정하기 [Server/Django] - [Django] AWS S3와 연동하기를 진행한 이후, 별다른 조치없이 S3에 파일을 업로드 하였다면, 해당 파일에 public한 연결 방법으로는 Access Permission Denied 메시지가 뜰 것이다. public 접근을 전부 차단해버렸으니 당연하다. 이 글에서는 public 권한 (정확히는 GET만)을 허용해주는 방법을 알아볼 것이다. 📍 S3 권한 탭으로 가서 아래와 같이 2개만 체크 📍 버킷 정책을 눌러 버킷 정책 편집기 부분의 ARN: 옆 부분을 복사 이후 아래의 정책 생성기 클릭 📍 S3 정책 생성기 화면에서 설정 Select Type Of Policy : S3 Bucket Policy Effect : Allo..
[Django] upload multiple image file in one model
한 모델에 여러 이미지 파일을 업로드 해야 할 때 Meet 이라는 모델이 있고, 그 모델 하나에 여러 이미지 파일이 들어갈 수 있는 상황이라고 했을 때, 어떻게 구현해야 할까? 쉽게 생각하자면, 댓글과 다를 것이 없다. 댓글 또한 one to many 모델이기 때문이다. 단지 댓글은 텍스트 데이터를 가지고 있는 것이고, 이미지 파일은 이미지 데이터를 가지고 있는 차이가 있을 뿐이다. 따라서 같은 방식으로 구현을 해주면 된다. 모델의 객체값을 ForeignKey로 가지고 있는 Images 라는 모델을 만들었다. #models.py class Meet(models.Model): pair = models.ForeignKey(Pair, blank=False, null=False, on_delete=models...
[Django] AWS S3와 연동하기
Django, AWS S3와 연동하기 AWS에 입장하여, 서비스 -> S3를 눌러 S3 Manage Console에 진입한다. 1. 버킷 만들기를 클릭 2. 버킷 이름을 적어주고 '다음' 3. 옵션 구성 페이지. 현재는 필요 없다. 바로 '다음'을 클릭 4. 전체 체크를 풀어주고 퍼블릭 정책 관련한 아래 2가지만 체크해주고 '다음' 클릭 5. 위와 똑같게 맞추었다면, 바로 '다음'을 눌러도 무방하다. '다음' 클릭 6. 제대로 버킷이 생성되었다면, IAM을 설정하러 갈 차례이다. Hot Ez Ex) IAM이란 쉽게 비유하자면 리눅스에서 nginx나 db용 유저를 따로 만들어 관리하듯이, 그런 유저를 하나 새로 만들어준다고 생각하면 된다. 물론 전체적인 상황에서는 다를 수 있지만 현재 상황에서는 비슷한 용..
[django/문제 해결] TypeError: expected string or bytes-like object
TypeError: expected string or bytes-like object 주로 model에 타입에 맞지 않은 잘못된 값을 넣고 있을 확률에 높으니 그 부분을 잘 보도록 하자
[AWS CentOS] Django Nginx uWSGI 연동하기
Django Nginx uWsgi 연동하기 AWS에서 Free Tier 서버 기본 선택 시에 설치되는 instance이며, CentOS 이며, django는 미리 구축한 상태입니다. ( 그러나 연동을 위한 설정은 해주지 않은 상태였습니다) 아래 같은 환경에서 진행하였다. $ cat /etc/*release* 0. 준비물 django는 설치되어있다는 가정하에, settings에 static 폴더와 media 폴더 경로를 설정하지 않았다면 설정해준다. $ settings.py STATIC_URL = '/static/' STATIC_ROOT = '/{프로젝트 경로}/assets/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] # media file (a..