flask学习之数据库操作一
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,数据库操作使用sqlalchemy模块安装(需安装MySQL-python/python-devel)pip install flask-sqlalchemy目录结构├── app│ ├── __
千家信息网最后更新 2026年11月01日flask学习之数据库操作一
数据库操作使用
sqlalchemy模块安装(需安装MySQL-python/python-devel)pip install flask-sqlalchemy
目录结构
├── app│ ├── __init__.py│ └── models.py├── config.py
配置环境
vim config.py#coding:utf-8SQLALCHEMY_DATABASE_URI = 'mysql://mysqlTest:mysqlTest@192.168.3.85/mysqlTest'SQLALCHEMY_TRACK_MODIFICATIONS = True #python版本低报出警告
#初始化vim app/__init__.pyfrom flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config.from_object('config')db = SQLAlchemy(app)from app import models#定义表模型(举例用)vim app/models.pyfrom app import dbclass User(db.Model): id = db.Column(db.Integer,primary_key = True) nickname = db.Column(db.String(64),index=True,unique = True) email = db.Column(db.String(120),index=True,unique = True) def __repr__(self): return '' % (self.nickname)
shell模式下使用介绍
#创建数据模型/删除数据模型>>> from app import db>>> from app.models import User #导入User模型>>> db.create_all() #创建数据库模型>>> db.drop_all()>>> db.create_all()
#添加数据#单条数据的提交方式>>> name_admin = User(nickname='admin',email='admin@flask.com') #赋值数据 >>> db.session.add(name_admin) #添加数据>>> db.session.commit() #提交数据#多条数据的提交方式>>> name_user1 = User(nickname='user1',email='user1@flask.com')>>> name_user2 = User(nickname='user2',email='user2@flask.com')>>> db.session.add_all([name_user1,name_user2]) #提交的是一个列表>>> db.session.commit()
mysql> select * from user;+----+----------+-----------------+| id | nickname | email |+----+----------+-----------------+| 1 | admin | admin@flask.com || 2 | user1 | user1@flask.com || 3 | user2 | user2@flask.com |+----+----------+-----------------+
查询数据
#查询所有数据all=User.query.all()#过滤查询(filter_by()),查询nickname=user1的行>>> user1 = User.query.filter_by(id=2).first() >>> user2 = User.query.filter_by(id=3).first()>>> user1>>> user2 #查询该行数据的各个字段,查看nickname字段的值>>> user1.nicknameu'user1'>>> user2.nicknameu'user2'#结果显示限制(limit()),显示两条查询结果>>> result = User.query.limit(2).all()>>> result[ , ]
修改数据
#修改数据,修改对应字段的值后直接提交即可#修改use1的nickname字段的值为user001user1.nickname = 'user001'db.session.add(user1)db.session.commit()
删除数据db.session.delete(user1)db.session.commit()
#常见查询过滤器filter() 把过滤器添加到原查询上,返回一个新查询filter_by() 把等值过滤器添加到原查询上,返回一个新查询limit() 使用指定的值限制原查询返回的结果数量,返回一个新查询offset() 偏移原查询返回的结果,返回一个新查询order_by() 根据指定条件对原查询结果进行排序,返回一个新查询group_by() 根据指定条件对原查询结果进行分组,返回一个新查询
#常见查询执行函数all() 以列表形式返回查询的所有结果first() 返回查询的第一个结果,如果没有结果,则返回 Nonefirst_or_404() 返回查询的第一个结果,如果没有结果,则终止请求,返回 404 错误响应get() 返回指定主键对应的行,如果没有对应的行,则返回 Noneget_or_404() 返回指定主键对应的行,如果没找到指定的主键,则终止请求,返回 404 错误响应count() 返回查询结果的数量paginate() 返回一个 Paginate 对象,它包含指定范围内的结果
查询
数据
结果
模型
字段
过滤器
数据库
常见
数量
方式
条件
错误
限制
函数
多条
对象
形式
模块
模式
版本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
博彦科技互联网金融
上海卓越科技互联网
北京路客互联网科技有限公司
关于新基建和互联网科技
广州互联网科技公司
互联网医疗科技
互联网科技英文
善班互联网科技有限公司
亿账通互联网科技
融贸通互联网科技
重庆科技学院互联网
无锡溥仪互联网科技有限公司
互联网科技公司招聘
开启互联网科技时代小说
中国航天科技大学国际工业互联网
威龙国际互联网科技公司
黑科技 体验场景 互联网大会
伍佰万互联网科技怎么赚钱
中天科技中国工业互联网
互联网科技接地气
疫情对互联网科技公司影响
奇酷互联网络科技
碳银互联网科技
狮子座互联网科技培训
互联网科技咨询
科技类的互联网平台
字节跳动和互联网科技
银川新华互联网科技职业技术培训学校图片
亳州好赞互联网科技有限公司
2021互联网科技公司排名