728x90
반응형

doit_점프투플라스크 10

gunicorn 서비스로 등록하기

gunicorn의 시작, 중지를 쉽게 하고 리눅스 서버 재부팅시 gunicorn 자동실행을 위해 환경 변수 파일 생성 /home/ubuntu/venv/myproject.env FLASK_APP=pybo FLASK_ENV=development APP_CONFIG_FILE=/home/ubuntu/projects/myproject/config/production.py 서비스 파일 생성 /etc/systemd/system/myproject.service [Unit] Description=gunicorn daemon After=network.target [Service] User=ubuntu Group=ubuntu WorkingDirectory=/home/ubuntu/projects/myproject Enviro..

IT/서버 2021.06.07

wsgi 서버

wsgi (Web Server Gateway Interface, 위스키) 웹서버와 웹 애플리케이션의 인터페이스를 위한 파이썬 프레임워크 ex) nginx와 flask 앱 사이에서 동작 wsgi 서버 종류 : uwsgi, gunicorn 등 설치는 pip로 pip install gunicorn 실행 위치 : flask 프로젝트가 있는 폴더에서 명령 포트로 서버 띄우려면 gunicorn --bind 0:5000 "pybo:create_app()" 유닉스 소켓 사용해서 실행 gunicorn --bind unix:/tmp/myproject.sock "pybo:create_app()" 소켓 방식으로 실행하면 브라우저에 url 쳐서 접속 불가 웹서버(nginx 등)가 유닉스 소켓으로 wsgi 서버에 접속해야 함

IT/서버 2021.06.07

[점프투플라스크] 이미 추천했습니다 띄우기

점프투플라스크 216쪽 자신의 글 추천시 오류 표시기능을 추가하는데 이미 추천한 글을 또 추천할때도 오류 표시를 해주고 싶을떼 vote_views.py @bp.route('/question//') @login_required def question(question_id): _question = Question.query.get_or_404(question_id) print(g.user, "/*/*/*/*/*", _question.voter) print("===>", g.user in _question.voter) ... 이렇게 찍어보면 g.user가 voter에 있으면 true를 반환하는 게 보인다. print를 지우고 elif문을 추가하자 @bp.route('/question//') @login_req..

IT/파이썬 2021.06.01

[플라스크] 다대다 관계 모델 설정 (SQLAlchemy)

models.py class Question(db.Model): user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'), nullable=False) user = db.relationship('User', backref=db.backref('question_set')) ... class User(db.Model): ... 위와 같이 kf로 참조되는 두 테이블을 다대다로 만들고자 한다. models.py question_voter = db.Table( 'question_voter', db.Column('user_id', db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'), p..

IT/파이썬 2021.05.31

플라스크에서 ORM 사용하기 5 - db에 데이터 넣기

html submit 누르면 answer 블루프린트의 create 함수 찾아감 post로 보냈으므로 받는쪽도 post여야함 blueprint from flask import Blueprint, url_for, request from werkzeug.utils import redirect from datetime import datetime from pybo import db from pybo.models import Answer, Question bp = Blueprint('answer', __name__, url_prefix='/answer') @bp.route('/crate/', methods=('POST',)) def create(question_id): question = Question.quer..

IT/파이썬 2021.05.24

플라스크에서 ORM 사용하기 4 - 라우팅

파라메터 받기 @bp.route('/detail//') def detail(question_id): question = Question.query.get(question_id) return render_template('question/question_detail.html', question=question) 없는 question_id 요청할때 404 띄우기 get_or_404 question = Question.query.get_or_404(question_id) redirect url_for와 redirect 임포트 필수 from flask import Blueprint, url_for from werkzeug.utils import redirect ... @bp.route('/') def index..

IT/파이썬 2021.05.24

플라스크에서 ORM 사용하기 3 - db에서 데이터 가져오기

현재 db 블루프린트 파일 (main_views.py) 수정 render_tempate 추가하고 pybo.models에서 Question에 대한 쿼리 작성해서 넣어줌 from flask import Blueprint, render_template from pybo.models import Question ... @bp.route('/') def index(): question_list = Question.query.order_by(Question.create_date.desc()) return render_template('question/question_list.html', question_list=question_list) 리턴할 question/question_list.htm 파일 작성 파일 경로는..

IT/파이썬 2021.05.24

플라스크에서 ORM 사용하기 1

SQLAlchemy : 플라스크 ORM 라이브러리 중 하나 Flask-Migrate : 파이썬 모델을 이용해 테이블 생성, 컬럼 추가 등 하게 해주는 라이브러리 * ORM이란? 2019.08.27 - [IT/자바] - ORM, JPA, Hibernate 설치 Flask-Migrate 설치하면 SQLAlchemy도 같이 설치됨 (myproject) C:\projects\myproject>pip install Flask-Migrate Collecting Flask-Migrate Downloading Flask_Migrate-3.0.0-py2.py3-none-any.whl (12 kB) . . . Successfully installed Flask-Migrate-3.0.0 Flask-SQLAlchemy-2.5..

IT/파이썬 2021.05.23

파이썬 가상환경

파이썬 가상환경 플젝 진행시 독립된 환경 만들어주는 도구 하나의 컴퓨터에 파이썬 버전(또는 라이브러리 버전)이 다른 프로젝트들이 같이 있을 때 유용 가상 환경 디렉토리 생성 C:\venvs>python -m venv myproject venvs라는 폴더는 C: 아래에 새로 생성한 빈 폴더임 거기에서 python -m venv (이름) 실행하면 venv 모듈을 사용하여 지정한 이름으로 가상 환경(폴더) 생성됨 activate로 진입 deactivate로 퇴장 # myprojcec\Script로 이동 C:\venvs\myproject>cd Scripts C:\venvs\myproject\Scripts> # 가상 환경 진입 (activate) C:\venvs\myproject\Scripts>activate (..

IT/파이썬 2021.05.21
300x250
반응형