ORMモデルの使用
フラスコにORMライブラリを使う
Flask-migrateをインストールし、最も代表的なSQLAlchemyとPythonモデルを使用してデータを処理します.
# Flask-Migrate만 깔아도 SQLAlchemy가 설치됨
pip install Flask-Migrate
問題モデルの作成
# models.py
from sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Question(db.Model):
id = db.Column(db.Integer, primary_key=True) # 질문ID
subject = db.Column(db.String(200), nullable=False) # 제목
content = db.Column(db.Text(), nullable=False) # 내용
create_date = db.Column(db.DateTime(), nullable=False) # 생성 날짜
上記のようなQuestionクラスを作成します.db.Columnを使用してカラムを定義できます.回答モデルの作成
# models.py
...
#-----------------------------------------------#
class Answer(db.Model):
id = db.Column(db.Integer, primary_key=True) # 답변ID
question_id = db.Column(db.Integer, db.ForeignKey('question.id', ondelete='CASCADE')) # 답변에 해당하는 질문의 ID
question = db.relationship('Question', backref=db.backref('answer_set')) # 역참조 설정
content = db.Column(db.Text(), nullable=False) # 답변내용
create_date = db.Column(db.DateTime(), nullable=False) # 생성 시간
回答は特定の質問に対する回答であるため,質問表の情報と一定の関連があるはずである.dbは、ある属性を既存のモデルに関連付けるために使用されます.ForeignKeyの使用
また、ondeleteではバインドの削除も設定されています
特定の質問を削除すると、関連する回答もすべて削除されます.
# 모델을 추가했으므로, 데이터 베이스 적용
flask db migrate
# 실행
flask db upgrade
実行時に次のdbファイルが生成されます.モデルの操作
フラスコシェルに接続
$ flask shell
Python 3.6.9 (default, Jan 26 2021, 15:33:00)
[GCC 8.4.0] on linux
App: app [production]
Instance: /home/sunbean/venv/var/app-instance
>>>
既存のQuestion、Answerモデルを呼び出して問題オブジェクトを作成します.>>> from app.models import Question, Answer
>>> from datetime import datetime
>>> q = Question(subject='첫번쨰 질문이에용', content='안녕하세요!', create_date=datetime.now())
>>>
問題オブジェクトを作成したら、dbオブジェクトを作成して保存する必要があります.>>> from app import db
>>> db.session.add(q)
>>> db.session.commit()
db.セッションは、データベースに関連付けられたセッションを表します.このセッションはデータベース処理に使用する必要がありますReference
この問題について(ORMモデルの使用), 我々は、より多くの情報をここで見つけました https://velog.io/@mokipha/모델-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol