千家信息网

flask学习之数据库操作一

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,数据库操作使用sqlalchemy模块安装(需安装MySQL-python/python-devel)pip install flask-sqlalchemy目录结构├── app│ ├── __
千家信息网最后更新 2025年11月11日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安全错误 数据库的锁怎样保障安全 个人组装一台服务器能玩游戏吗 软件开发黑苹果和M1 河北软件职业技术数据库大赛 无锡专业软件开发流程 金蝶软件服务器数据库 服务器正在离线状态 部队提高网络安全意识心得体会 第一届网络安全宣传周焦点访谈 数据库oracle知识要点 数据库识别字符串 苹果与服务器无法安全问题 软件开发人员用哪个系统好 接口自动化判断服务器返回结果 网络技术安全事件应急预案 安全监控系统时钟同步服务器 数据库中出现异常重复数据 奉贤区电商数据库系统商家 npoi 读取数据库 郴州口碑好的软件开发哪家便宜 鑫瑞网络技术工作室 单位网络安全工作领导机构 钢铁冶金工控网络安全研讨会 FTP百度服务器 请从服务器管理器添加 检测服务器raid卡型号 网络安全试点名单 网络安全的征文不少于800字 大学生网络安全的着力点 还原启用了发布的数据库 军人网络安全讨论发言
0