728x90
반응형

IT 156

파이썬 데코레이터

데코레이터 @app.route("/")와 같은 데코레이터를 직접 만들자 def decorator(): dec wrapper(): ... return wrapper 기본적으로 이런 형식 이렇게 만들어놓고 @decorator 처럼 앞에 @ 붙여서 함수 위에다 쓰면 됨 예제 # 데코레이터 정의 def mydeco(func): def a(): print('func start') func() print('func end') return a # 함수에 적용 @mydeco def myfunc(): print('i am myfucn') 이제 myfunc()를 호출하면 아래처럼 나온다 return 리턴해주는 함수는 이렇게 (사실 똑같음... 그냥 return 한번 더해주는것 뿐) def mydeco(infunc): de..

IT/파이썬 2021.05.27

파이참 또는 인텔리제이에서 파일 확장자 인식 안될때

문제상황 navbar.html 파일이 html로 인식이 되지 않고 일반 txt문서로 인식되고 있다. 원래는 위 form_errors.html 파일과 마찬가지로 연두색 H 띠를 두르고 있어야 하는데 말이다. 때문에 마크다운도 적용이 안 되어 이처럼 코드가 온통 회색으로만 보인다.. 원인은 아마 처음 파일을 생성할 때 확장자를 떼고 만들었던 탓인 듯한데 뒤늦게 .html을 붙였지만 받아들여지지 않는 모양이다. 파일을 삭제하고 새로 만들어도 같은 이름으로 만드는 순간 txt파일이 되어버린다. 해결 File > File Properties > Associate with File Type 으로 들어감 파일 형식을 HTML로 지정하고 ok 누름 그러면 이제 정신차리고 html로 인식한다 코드도 알록달록 예뻐졌다

IT 2021.05.26

플라스크에서 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 사용하기 2 - 모델 및 테이블 생성

모델 생성 from pybo import db # Question 테이블 스키마 정의하는 클래스 class Question(db.Model): id = db.Column(db.Integer, primary_key=True) subject = db.Column(db.String(200), nullable=False) content = db.Column(db.Text(), nullable=False) create_date = db.Column(db.DateTime(), nullable=False) class Question(db.Model) flask db migrate INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runti..

IT/파이썬 2021.05.23

플라스크에서 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

플라스크 블루프린트

블루프린트 mvc에서의 컨트롤러라고 생각하면 되겠다 라우팅 함수들을 모아두는 파일 블루프린트 파일 생성 main_views.py from flask import Blueprint # 프리픽스 지정 bp = Blueprint('main', __name__, url_prefix='/') # @app.route 아닌 bp.route @bp.route('/') def hello_pybo(): return 'Hello blueprint pybo' app 객체 있는 곳에서 bp 객체 등록 __init__.py from flask import Flask def create_app(): app = Flask(__name__) # 기존 라우팅 제거 # @app.route('/') # def hello_pybo(): # ..

IT/파이썬 2021.05.21

파이참 인터프리터 설정 (가상환경)

* 단순 모듈추가 -> https://thesse.tistory.com/61 새 프로젝트를 만들면 인터프리터가 없어서 빨간색 뜸 File>setting으로 인터프리터 설정에 들어옴 오른쪽 톱니바퀴 눌러서 Add 인터프리터 위치를 가상 환경 위치로 설정하기 위해 Existing enviroment에서 오른쪽 ...을 클릭하여 가상환경 폴더의 Script\python.exe 선택 ok 하고 나오면 셋팅창에 모듈들이 떠있는게 보임

IT/파이썬 2021.05.21
300x250
반응형