Flask数据库操作

Flask数据库操作

1、技术概述,描述这个技术是做什么?学习该技术的原因,技术的难点在哪里。控制在50-100字内。

这个技术是在flask框架中使用python对数据库进行增删改查操作。学习的原因是为后端实现对数据库的操作,技术难点在之前对python语言不是很了解,所以在刚开始学习这个内容的时候有些困难。

2、技术详述,描述你是如何实现和使用该技术的,要求配合代码和流程图详细描述。可以再细分多个点,分开描述各个部分。

新增用户(此时已经判断各参数数值符合要求)

if code == 0 :
        user = User(
            username=username,
            nickname=nickname,
            email=email,
            avatar=filenames[1],
        )
        user.set_password(password)
        db.session.add(user)
        db.session.commit()

其中set_password函数定义

password_hash = db.Column(db.String(128))
    def set_password(self,password):
        self.password_hash=generate_password_hash(password)

获取数据库中用户资料

@user_bp.route(‘/profile‘,methods=[‘GET‘])
@user_bp.route(‘/profile/<int:uid>‘,methods=[‘GET‘])
def profile(uid=-1):
    results = {}

    if uid == -1 :
        uid = int(current_user.get_id())

    user = User.query.get(uid)

    data = {
        ‘uid‘ : int(uid),
        ‘username‘ : user.username,
        ‘email‘ : user.email,
        ‘nickname‘ : user.nickname,
        ‘signature‘ : user.signature
    }

    results[‘code‘] = 0
    results[‘msg‘] = ‘获取资料成功‘
    results[‘data‘] = data

    return json.dumps(results)

修改密码(此时已经判断密码合法)

@user_bp.route(‘/change_password‘,methods=[‘POST‘])
def change_password():
    results = {}
#修改密码时旧密码
    old_password = request.form.get(‘old_password‘)
#修改密码时新密码
    new_password = request.form.get(‘new_password‘)

    id = int(current_user.get_id())
    user = User.query.get(id)

......
    
    else :
        results[‘code‘] = 0
        results[‘msg‘] = current_app.config[‘CHANGE_PASSWD‘][0]
        user.set_password(new_password)
        db.session.commit()

    return json.dumps(results)

3、技术使用中遇到的问题和解决过程

因为flask框架以及python语言对于我来说都是新学习的知识,所以在使用过程中一直有在组长给的参考书《Flask Web开发:Python基于Web应用开发实战 第 2 版 》中学习数据库相关操作。

4、进行总结。

刚开始学习这一块知识的时候感觉很难,因为是一个全新的语言和框架。但是后来在组长的帮助下慢慢的开始理解里面的一些知识点,对数据库的操作也逐渐熟悉起来。中间碰到的一些问题也会与组长讨论或者上网百度看看有没有更好的解决办法。这段时间学习下来也算小有成就,但是还是不够熟练,希望自己以后在用到的时候能更加熟练一些。

5、列出参考文献、参考博客(标题、作者、链接)。

《Flask Web开发:Python基于Web应用开发实战 第 2 版 》 【美】米格尔·格林贝格 著
5.8节 数据库操作

相关推荐