admin管理员组

文章数量:1794759

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

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.sessionmit() # 建表函数 create_table() @app.route('/') def index(): return 'Hello flask!' if __name__ == '__main__': app.run(debug=True) 1.安装SQLAlchemy第三方库 from flask_sqlalchemy import SQLAlchemy

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

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

‘mysql://用户名:密码@主机名/ip地址:端口号/数据库名’ 上述信可以在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字段类型 ③注意repr()方法与str()方法的区别,可参考这篇博客: blog.csdn/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.sessionmit()

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

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

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

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

①使用DDL查询语句查看

select * from students;

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

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

【学习交流】 WX:WL1498544910

【文末小宣传】 ----博主自己开发的小程序,希望大家点赞支持一下,谢谢!-----

本文标签: 框架数据库服务器教程数据