我创建了一个flask应用程序。为了存储数据,我使用sqlalchemy创建了一个db文件。我的目标是创建一个事件日历。我决定使用FullCalendar。io。但问题是,要提供数据,它需要json文件。有人能帮我吗?
from flask import Flask, render_template, request, redirect
from flask.wrappers import Request
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
from sqlalchemy.orm import query
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///caldb.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class CalData(db.Model):
date = db.Column(db.String(200), nullable=False)
title = db.Column(db.String(200), nullable=False, primary_key=True)
desc = db.Column(db.String(500), nullable=False)
time = db.Column(db.Integer, nullable=False)
link = db.Column(db.String(200), nullable=True)
def __repr__(self) -> str:
return f"{self.title} - {self.time}"
@app.route('/cal2')
def cal2():
cd = CalData.query.all()
return render_template("cal2.html", data=cd)
我不熟悉FullCalendar。但是,让我们假设您需要一个对象列表,每个对象表示一个日历事件,其格式为您在ORM模型中描述的格式。然后,您只需要将从查询中获得的实例中的所有数据放入dict
s,然后将其与jsonify
一起发送出去:
from flask import jsonify
...
...
...
@app.route('/cal2')
def cal2():
result = []
calendar_entries = CalData.query.all()
for entry in calendar_entries:
obj = dict()
obj['date'] = entry.date
obj['title'] = entry.title
...
result.append(obj)
return jsonify(result)