文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 前言
- 一、安装flask_sqlalchemy
- 二、加载资源
- 1.引入库
- 2.新建数据库
- 2.1 使用Navicat数据库可视化工具,新建数据库,保证红框内的数据库名称和config.py里DATABASE名称相同。
- 2.2 此时表是空的,接下来创建表使用SQLAlchemy来创建。
- 3.操作数据库
- 3.1.插入数据
- 3.2 查看数据
- 3.3 删除数据
- 3.4 更新数据
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、安装flask_sqlalchemy安装SQL Alchemy
pip install SQLAlchemy
安装数据库驱动
pip install pumysql二、加载资源 1.引入库
代码如下(示例):
在app.py里配置
from flask import * import config from exts import db from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config.from_object(config) # 把db绑定到app上 db.init_app(app) db = SQLAlchemy(app)
配置exts.py(新建python文件和app.py同级目录)
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy()
配置config.py(新建python文件和app.py同级目录)
from flask_sqlalchemy import SQLAlchemy
JSON_AS_ASCII = False
# 数据库连接:
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'flask_test_sql'
USERNAME = 'root'
PASSWORD = 'root'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
SQLALCHEMY_DATABASE_URI = DB_URI
# 取消跟踪修改
SQLALCHEMY_TRACK_MODIFICATIONS = True
# SECRET_KEY随便写
SECRET_KEY= 'TPmi4aLWRbyVq8zu9v82dWYW1'
2.新建数据库
2.1 使用Navicat数据库可视化工具,新建数据库,保证红框内的数据库名称和config.py里DATABASE名称相同。
2.2 此时表是空的,接下来创建表使用SQLAlchemy来创建。
代码如下(示例):
class User(db.Model):
__tablename__ = "user"
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
name = db.Column(db.String(200),nullable=False)
gender = db.Column(db.String(10),nullable=False)
age = db.Column(db.Integer,nullable=False)
db.create_all()
此时启动服务就可以创建成功了。
3.操作数据库 3.1.插入数据// 实例化一个User_insert,将数据插入User表中 User_insert= User(name="user",gender="man",age=18,) db.session.add(User_insert) // 提交 db.session.commit()3.2 查看数据
# user获取到的是所有数据库里的项,存储在列表中
user= User.query.filter_by().all()
# 取user表中第一个项
user1= User.query.filter_by().all()[0]
# 获取user表中第一个项的name
user2= User.query.filter_by().all()[0].name
# 根据id获取id获取name
user3 = User.query.filter_by(id = 1).all()[0].name
# 模糊查询(查询name中有'test'值的数据)
# 需要导入or_库:from sqlalchemy import or_
User.query.filter(or_(User.name.contains('test'))).all()
# 模糊查询(年龄大于10,且名字中带有Ryan的数据)
User.query.filter(or_(Users.name=='Ryan', Users.age>10)).all()
# 遍理获取所有name
for i in user:
print(i.name)
3.3 删除数据
# 删除user表中id=1的值
User.query.filter_by(id = 1).delete()
db.session.commit()
# 模糊删除(删除name中有'test'值的数据)
User.query.filter(or_(User.name.contains('test'))).delete()
3.4 更新数据
# 先查出来再修改属性即可 user = User.query.filter_by(id = 1).all()[0] user.name = '修改值'
总结
filter_by和filter区别:
将数据库数据插入excel:
import pymysql
import pandas as pd
conn = pymysql.connect(host='127.0.0.1',user='root',password='root',port=3306,db='flask_test_sql',charset='utf8')
df = pd.read_sql("""select * from User""",con=conn)
df.to_excel("D:/Desktop/test.xlsx", index=True)
conn.close()



