개발자모드
flask run --host=192.168.0.21 --port=5000
CI4 > MVC (model, view, controller)
flask, django > MTV
syslog와 sensor의 데이터를 가져오자
데이터베이스 연결하기
security > models에 추가
from security import db
class User(db.Model):
id=db.Column(db.Integer,primary_key=True)
username=db.Column(db.String(150),unique=True,nullable=False)
password=db.Column(db.String(200),nullable=False)
email=db.Column(db.String(120),unique=True,nullable=False)
class Syslog(db.Model):
id=db.Column(db.Integer,primary_key=True)
receivedat=db.Column(db.String(150),nullable=False)
fromhost=db.Column(db.String(200),nullable=False)
message=db.Column(db.String(500),nullable=False)
class Sensor(db.Model):
id=db.Column(db.Integer,primary_key=True)
distance=db.Column(db.String(150),nullable=False)
temperature=db.Column(db.String(200),nullable=False)
humidity=db.Column(db.String(120),nullable=False)
regdate=db.Column(db.DateTime(),nullable=True)
security > init에 추가
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
migrate = Migrate()
#ORM (데이터베이스연결)
db.init_app(app)
migrate.init_app(app,db)
from .import models
윈도우에 추가 설치해주기
pip install Flask-Migrate
데이터베이스 관련 명령어
flask db init : 초기화
flask db migrate : 모델로 새로 생성하거나 변경할 때 사용
flask db upgrade : 실제 데이터베이스에 적용
데이터베이스에 접근
flask shell
from security.models import User
from datetime import datetime
from security import db
u =User(username='admin',password='123456',email='test@test.com')
db.session.add(u)
db.session.commit()
User.query.all()
User.query.filter(User.id==1).all()
User.query.get(1)
User.query.filter(User.username.like('%ad%')).all()
수정
db.session.commit()
삭제
db.session.delete(u)
db.session.commit()
결론
mysql에서 배운 DML(select,update.delete,insert )문을 몰라도 사용할 수 있다.
이제 로그인 페이지를 수정
auth의 login