Web服务器(Flask框架)连接MySQL数据库并写入数据详细教程

写在前面

如何利用flask框架搭建的web服务器连接后端的数据库
在开始这一项任务前,你需要具备的条件:
①Flask框架下的web服务器已经搭建完毕
②学习过数据库相关的知识
③熟悉使用MySQL相关语句
(本次操作使用的是Navicat数据库管理工具
最最最重要的是,你有强烈的兴趣去学会它!!!

先放代码,之后我们详细讲解~

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# 配置数据库的地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root@localhost:3306/flask_sql'

# 跟踪数据库的修改 --> 不建议开启 未来的版本中会移除
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

#查询时会显示原始SQL语句
# app.config['SQLALCHEMY_ECHO'] = True

# 创建数据库对象
db = SQLAlchemy(app)


# 学生
class Students(db.Model):
    # 定义表名
    __tablename__ = 'students'
    # 定义字段
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(16))
    stu_number = db.Column(db.String(32), unique=True)

 	# repr()方法显示一个可读字符串,实例返回的内容
    def __repr__(self):
        return '<User: %s %s %s %s>' % (self.name, self.id, self.stu_number)

def create_table():
	# 删除表
	db.drop_all()
	# 创建表
	db.create_all()
	
    stu1 = Students(name='小明', stu_number='1918101')
    stu2 = Students(name='小红', stu_number='1918102')
    stu3 = Students(name='小华', stu_number='1918103')
	db.session.add_all([stu1,stu2,stu3])
	db.session.commit()

# 建表函数
create_table()


@app.route('/')
def index():
    return 'Hello flask!'


if __name__ == '__main__':
    app.run(debug=True)

1.安装SQLAlchemy第三方库

from flask_sqlalchemy import SQLAlchemy

相关介绍可看这篇博客:
https://www.jianshu.com/p/20593da77c04

2.配置数据库地址

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root@localhost:3306/flask_sql'

‘mysql://用户名:密码@主机名/ip地址:端口号/数据库名’
上述信息可以在Navicat里查看,如下图
Navicat

3.新建数据库

①方法有两种:一是利用Navicat图形化界面构建,右击localhost选择新建数据库。注意:数据库名与要匹配;由于所存数据有中文字符,数据库地址字符集和排序规则都要选取utf8,如下图:
新建数据库
二是利用DDL语句创建数据库,如下图:

CREATE database flask_sql charset=utf8;

创建数据库

4.创建数据库对象及学生类

db = SQLAlchemy(app) # db为对象名,自拟
class Student(db.Model):
    # 定义表名
    __tablename__ = 'student'
    # 定义字段
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(16), unique=True)
    stu_number = db.Column(db.String(32), unique=True)

 	# repr()方法显示一个可读字符串,实例返回的内容
    def __repr__(self):
        return '<User: %s %s %s %s>' % (self.name, self.id, self.stu_number)

注意点:
①定义数据库表名: tablename = '表名’
②定义字段: 字段名 = db.Column(类型,完整性约束条件)
常用的SQLAlchemy字段类型
常用的SQLAlchemy字段类型
③注意repr()方法与str()方法的区别,可参考这篇博客:
https://blog.csdn.net/qq_39806003/article/details/84589292

5.向数据库中存储数据完成建表

def create_table():
	# 删除表
	db.drop_all()
	# 创建表
	db.create_all()
	
	stu1 = Student(name='小明', stu_number=1918101)
	stu2= Student(name='小红', stu_number=1918102)
	stu3= Student(name='song', stu_number=1918103)
	db.session.add_all([stu1,stu2,stu3])
	db.session.commit()

先删除后建立表,使每次运行可以更新数据库中的数据
②由于引入SQLAlchemy库,使关系数据库的表结构可以映射到对象上,输入数据等同于定义并初始化一个个对象
在Flask-SQLAlchemy中,插入、修改、删除操作,均由数据库会话管理会话用db.session表示。在准备把数据写入数据库前,要先将数据添加到会话中然后调用 commit() 方法提交会话。
相关操作如下:

db.session.add(对象)    添加到数据库的session中
db.session.add_all([对象1, 对象2]) 添加多个信息到session中
db.session.delete(对象) 删除数据库(需跟上commit)
db.session.commit()     提交数据库的修改(包括增//)

至此,我们就已经实现连接数据库并向其中写入数据的操作啦,下面让我们一起来验证一下吧!

6.查询所建数据库的相关信息

①使用DDL查询语句查看

select * from students;

②使用Navicat查看表信息,如下图:
查看表
至此,我们就顺利完成本次操作啦,恭喜恭喜!有什么疑问欢迎下面留言或私信我噢!

最后祝大家生活愉快,bug都会改!

写在最后

【学习交流】
WX:WL1498544910

【文末小宣传】
----博主自己开发的小程序,希望大家点赞支持一下,谢谢!-----
在这里插入图片描述

  • 17
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南浔Pyer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值