기본 콘텐츠로 건너뛰기

Flask Flask-SQLAlchemy

Flask Flask-SQLAlchemy

Python/Flask

db init_app config

class DevConfig(Config): # Dev Config ENV = 'dev' DEBUG = True TESTING = True # Dev Database SQLALCHEMY_TRACK_MODIFICATIONS = True SQLALCHEMY_ECHO = False SQLALCHEMY_RECORD_QUERIES = True SQLALCHEMY_DATABASE_URI = 'mysql://아이디:비밀번호@192.168.1.222:3306/test' # 데이터베이스 Binds SQLALCHEMY_BINDS = { 'test' : 'mysql://아이디:비밀번호@아이피:포트/test', 'EXPORT' : 'mysql://아이디:비밀번호@아이피:포트/EXPORT', 'WH' : 'mysql://아이디:비밀번호@아이피:포트/WH', 'WH_SLAVE': 'mysql://아이디:비밀번호@아이피:포트/WH' }

모델 클래스

""" Database Bind : Below Values Must Be Check __bind_key__ : Database Name Has Bound __tablename__ : Table Name Will Use API 문서 주소 https://flask-sqlalchemy.palletsprojects.com/en/2.x/api/#models """ class Users(db.Model): __bind_key__ = 'test' __tablename__ = 'users' id = db.Column(db.Integer, primary_key = True, nullable = False, autoincrement = True) name = db.Column(db.String(10), unique = True, nullable = False) regDate = db.Column(db.DateTime, nullable = False) # def __init__(self, name: str, regDate: str): # self.name = name # self.regDate = regDate # def __repr__(self): return '' % self.name

쿼리 호출 문법...

from datetime import datetime from flask import Blueprint, request usertest_blueprint = Blueprint('usertest_blueprint', __name__) @usertest_blueprint.route('/user/insert/') def user_insert(name): from sanggi.system.models import Users users = Users(name, datetime.today().strftime('%Y-%m-%d %H:%M:%S')) Users.add(users) Users.commit() return 'Insert Test' @usertest_blueprint.route('/user/select', methods = ['GET', ]) def user_select(): from sanggi.system.models import Users users_all = Users.query.all() # from flask_sqlalchemy import get_debug_queries # print(get_debug_queries()) for item in users_all: print(item.name, ' | ', item.regDate) return 'Select Test' @usertest_blueprint.route('/user/who', methods = ['GET']) def user_who(): from sanggi.system.models import Users name = request.args.get(key = 'name', default = 'Unknown', type = str) whois = Users.query.filter(name == name).first() msg = 'Name {name} | RegDate {regDate}' return msg.format(name = whois.regDate, regDate = whois.regDate) """ first 메소드는 결과가 없을 시에 None 을 뱉고, 있다면 충족하는 것들중 최상위 한개를 뱉음 one 메소드는 결과가 없을시 NoResultFound 예외를 뱉고, 있다면 MultipleResultFound 예외를 뱉음 상황에 맞게 유용하게 사용 가능할 것 같당. """ """ filter 메소드 파라미터 설정에 따른 sql equals: query.filter(User.name == 'ed') not equals: query.filter(User.name != 'ed') LIKE: query.filter(User.name.like('%ed%')) IN: query.filter(User.name.in_(['ed', 'wendy', 'jack'])) # works with query objects too: query.filter(User.name.in_( session.query(User.name).filter(User.name.like('%ed%')) )) # use tuple_() for composite (multi-column) queries from sqlalchemy import tuple_ query.filter( tuple_(User.name, User.nickname).\ in_([('ed', 'edsnickname'), ('wendy', 'windy')]) ) NOT IN: query.filter(~User.name.in_(['ed', 'wendy', 'jack'])) IS NULL: query.filter(User.name == None) # alternatively, if pep8/linters are a concern query.filter(User.name.is_(None)) IS NOT NULL: query.filter(User.name != None) # alternatively, if pep8/linters are a concern query.filter(User.name.isnot(None)) AND: # use and_() from sqlalchemy import and_ query.filter(and_(User.name == 'ed', User.fullname == 'Ed Jones')) # or send multiple expressions to .filter() query.filter(User.name == 'ed', User.fullname == 'Ed Jones') # or chain multiple filter()/filter_by() calls query.filter(User.name == 'ed').filter(User.fullname == 'Ed Jones') OR: from sqlalchemy import or_ query.filter(or_(User.name == 'ed', User.name == 'wendy')) MATCH: query.filter(User.name.match('wendy')) """

from http://sanggi-jayg.tistory.com/41 by ccl(A)

댓글

이 블로그의 인기 게시물

Flask 13. pythonanywhere에 배포하기

Flask 13. pythonanywhere에 배포하기 Login: PythonAnywhere It's always a pleasure to hear from you! Ask us a question, or tell us what you love or hate about PythonAnywhere. We'll get back to you over email ASAP. Sorry, there was an error connecting to the server. Please try again in a few moments... www.pythonanywhere.com from http://ohdowon064.tistory.com/124 by ccl(A) rewrite - 2020-03-11 15:54:10

Flask.py #1 설치해보자

Flask.py #1 설치해보자 Flask는 python의 프레임워크라고 할 수 있습니다. Flask를 설치해보자! # 리눅스 -- 접기 이러면 끝 - # pip install flask $ sudo -s 리눅스 같은 경우는 이미 파이썬이 설치가 되어 있을겁니다. # 리눅스 -- 접기 # 맥 -- 접기 이러면 끝 - $ sudo pip install flask 설치가 끝낫으면 Terminal.app 을 열어줍시다. 로 접속하여 파이썬을 설치해 줍니다. [ https://www.python.org/ ] # 맥 -- 접기 # 윈도우 -- 접기 [ https://www.python.org/ ] 로 접속하여 파이썬을 설치해 줍니다. 설치가 끝났으면 [ 고급설정 ] - [ 환경변수 ] - [ 시스템 변수 ] 에서 Path를 찾아줍니다. Path를 찾으셧다면 편집을 누르고 파이썬의 설치 경로와 파이썬 폴더 내의 Script 폴더를 입력해 줍시다. 환경변수까지 끝나셧다면 cmd 창을 키시고 pip install flask 이러면 flask 설치가 끝나게 됩니당 from http://chocoweb.tistory.com/14 by ccl(A) rewrite - 2020-03-07 13:54:54