python学习之flask(二)

上一篇运行项目后就会创建两个表 现在就可以使用flask路由来尝试些接口 并做一个让前端页面请求获取数据渲染出来可以编辑歌曲 添加歌手 删除等等一个简单的demo
aaa

紧接继续写上代码

#拉取全部的歌手列表
@app.route('/getMusic', methods=['GET'])
@cross_origin()
def getMusic():
    singers = Singer.query.all()     #xxx.query.all() 返回表里的全部数据
    data = []
    for v in singers:			   
        data.append(v.to_json())   # to_json方法在上一篇定义了该方法,因为之前有反向引用 所以在拿到belong_to的属性并且引用了Song类

    return jsonify({'code': 200, 'success': True, 'data': data})   #flask jsonify转换为json格式返回
 
 
 #添加歌手列表
@app.route('/addmusic', methods=['POST'])
@cross_origin()
def addMusic():
	'''
	既然要添加 那肯定是获取前端传过来的值 定义两个key来获取
	添加之前肯定要查询一遍是不是重复的歌手 因为歌手名的字段之前的unique = true是不能重复的
	不是重复的就是添加 重复的话就只能添加歌曲名
	'''
    song_name = request.form.get('name')
    singer = request.form.get('author')
    isSinger = Singer.query.filter_by(name=singer).first()    #条件查询是否有该歌手
    if isSinger is not None:
        song = Song(song_name, isSinger.id)   #存在 就添加歌曲 把已存在的歌手id传进去
        db.session.add(song)
        db.session.commit()
    else:
        # 先添加歌手
        music = Singer(singer)
        db.session.add(music)
        db.session.commit()
        # 再添加歌曲 在把新的歌手ID加上
        song = Song(song_name, music.id)
        db.session.add(song)
        db.session.commit()

    return jsonify({'code': 200, 'success': True, 'data': '歌曲添加成功'})
    
#编辑歌曲
@app.route('/editMusic', methods=['POST'])
@cross_origin()
def editMusic():
	#编辑歌曲 最基本两个参数就是 新的歌曲名词  和歌曲id
    song_name = request.form.get('name')
    id = request.form.get('id')
    res = Song.query.filter_by(id=id).first()
    res.name = song_name     #赋值就直接修改了 在执行一次提交ok
    db.session.commit()
    return jsonify({'code': 200, 'success': True, 'data': '歌曲修改成功'})
    
#删除歌曲
@app.route('/delMusic/<id>', methods=['GET'])   # <id> 获取动态参数
@cross_origin()
def delMusic(id):
    res = Song.query.filter_by(id=id).first()
    db.session.delete(res)
    db.session.commit()
    return jsonify({'code': 200, 'success': True, 'data': '歌曲删除成功'})

#删除歌手
@app.route('/delSinger/<id>', methods=['GET'])   #<id>歌手id
@cross_origin()
def delSinger(id):
    res = Singer.query.filter_by(id=id).first()
    db.session.delete(res)
    db.session.commit()
    return jsonify({'code': 200, 'success': True, 'data': '歌手删除成功'})

还有一些异常捕获的处理没有写 反正就是一个demo 轮到前端部分咯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值