如何预约并保存到数据库Flask?

2024-09-29 19:23:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个小应用程序,客户可以在日历中预约,但我不知道如何将约会保存在数据库中,然后在按日期显示给他们。在

完全编辑:

我用一些垃圾约会创建了日历,如下所示:

Click to see a full image.

我想将约会保存在数据库中,因此当任何客户机在提交后的任何日期点击时,ajax请求将被发送到我的视图中,我可以在那里处理该请求,这里是视图.py

@abonent_panel_route.route('/panel/make/appointment/')
@abonent_panel_route.route('/panel/make/appointment/', methods=['GET', 'POST'])
def get_appo():
    # user = User.query.filter_by(id=current_user.id).first_or_404()

    import json
    getData = str(request.args.getlist('data'))
    data  = json.loads(getData)

    if data :
        print "\n\n\n\n" + str(data['title']) + "\n\n\n\n"
        return jsonify({'success': data})
    else:
        print "\n\n\n\n" + str(len(data)) + "\n\n\n\n"
        return jsonify({'error': 'No data!'})

下面是javascript代码:

^{pr2}$

在控制台里,我可以看到所选日期的数据列表,如标题、开始时间和结束时间,这里是:

Object {title: "asfawg", start: r, end: r}
start : r{
    "_ambigTime":true,
    "_ambigZone":true,
    "_d" : "Thu Apr 06 2017 06:00:00 GMT+0600 (+06)",
    "_fullCalendar":true,
    "_i":"2017/4/19",
    "_isAMomentObject":true,
    "_isUTC":true,
    "_isValid":true,
    "_locale":e,
    "_offset":0,
    "_pf":Object,
    "__proto__":Object,
    "title":"asfawg"
}

视图.py,我已经将字典转换为一个列表,以便于从列表中获取数据,因此您有一个键和值,正如您在上面看到的那样,我打印标题print“\n\n\n”+str(data['title'])+“\n\n\n”我应该得到标题的值,即asfawg,但是我什么也没有得到,请求总是返回没有数据。而列表的长度返回0。在

拜托,有人告诉我我犯的错误在哪里。在


Tags: py视图数据库true标题列表dataobject
1条回答
网友
1楼 · 发布于 2024-09-29 19:23:11

我解决了这个问题,eventData本身是一个字典而不是一个列表。在

如果我想把我的ajax请求发送到视图.py,我会做一些类似的事情:

data: {
    'data': title,
    'start': eventData['start']['_d'],
    'end': eventData['end']['_d']
}

我稍微改变了一下我的观点,我添加了一个接受任何json参数的函数,并将其作为json字典返回,我使用flask_restful来完成这项工作,以下是函数:

^{pr2}$

下一步非常简单,只需按如下顺序逐个获取参数:

data = parse_arg_from_requests('data')
start = parse_arg_from_requests('start')
end = parse_arg_from_requests('end')
return render_template('panel/panel.html')

相关问题 更多 >

    热门问题