ORDER BYで取得順を変更する
テーブル定義からテーブル作成
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///PFCManagement.db"
app.config["SECRET_KEY"] = os.urandom(24)
db = SQLAlchemy(app)
login_manager = LoginManager()
login_manager.init_app(app)
class PFC_LIST(UserMixin, db.Model):
id = db.Column(db.String(20), primary_key=True)
seq = db.Column(db.Integer, primary_key=True)
meal_date = db.Column(db.String(10), nullable=True)
calorie = db.Column(db.Integer, nullable=True)
protein = db.Column(db.Integer, nullable=True)
fat = db.Column(db.Integer, nullable=True)
carbohydrate = db.Column(db.Integer, nullable=True)
dietary_fiber = db.Column(db.Integer, nullable=True)
salt = db.Column(db.Integer, nullable=True)
del_flg = db.Column(db.String(1), nullable=False, default="0")
created_at = db.Column(
db.DateTime, nullable=False, default=datetime.now(pytz.timezone("Asia/Tokyo"))
)
update_at = db.Column(db.DateTime, nullable=True)
ORDER BY
@app.route("/PFClist")
@login_required
def PFClist():
#idをrequestから取得
get_id = request.form.get("id")
#PFC_LISTから「PFC_LISTのid」と「requestから取得したid」が一致する行をmeal_dateの降順で取得
get_pfc_list = PFC_LIST.query.filter(PFC_LIST.id == get_id).order_by(
PFC_LIST.meal_date.desc()
)
.order_by(クラス名.列名)で指定した列名の昇順で取得できる
降順にしたい場合は、.order_by(クラス名.列名).desc()で降順になる
また、.order_by(クラス名.列名, クラス名.列名)で並び順の条件を複数にすることもできる
例:PFC_LIST.query.order_by(PFC_LIST.meal_date.desc(), PFC_LIST.protein.desc())
meal_date | protein |
2025/05/20 | 50 |
2025/05/20 | 40 |
2025/05/20 | 30 |
2025/05/19 | 50 |
2025/05/19 | 40 |