#20250301

플라스크 DB 연결

> pip install Flask-Migrate

서버 돌린 상태에서 새 cmd 창
> flask db init #DB 초기화
> flask db migrate #모델로 새로 생성하거나 변경할 때 사용
> flask db upgrade #실제 DB에 적용

DB 접근
> 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()

/auth/login.html 수정
<form>태그 밑에
{{form.csrf_token}}
추가.

'form' is undefined 오류

/security/forms.py에 사용할 form을 정의해주어야 한다.

form을 사용하기 위한 라이브러리 설치
pip install Flask-WTF

세션처리
{% if g.user %}

{% else %}

{% endif %}

센서 서버 DB와 연결
[model.py]
app.config['SQLALCHEMY_DATABASE_URI']='mysql+pymysql://master:123456@192.168.0.98/master'

기존에 있던 migrate 폴더 삭제 후 다시 생성
flask db init
flask db migrate
flask db upgrade

페이징

[sensor.py]
page=request.args.get('page', type=int, default=1)
per_page = 10
datas=Sensor.query.order_by(Sensor.regdate.desc()).paginate(page=page, per_page=per_page, error_out=True)

[templates/sensor/index.html]
추가
<div class="pagination"><br>     {% if sensor.has_prev %}
        <a href="{{ url_for('sensor.index', page=sensor.prev_num) }}">이전</a><br>     {% endif %}
        페이지 {{ sensor.page }} / {{ sensor.pages }}
    {% if sensor.has_next %}
        <a href="{{ url_for('sensor.index', page=sensor.next_num) }}">다음</a>
    {% endif %}