flask学习之数据库操作一
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,数据库操作使用sqlalchemy模块安装(需安装MySQL-python/python-devel)pip install flask-sqlalchemy目录结构├── app│ ├── __
千家信息网最后更新 2025年02月04日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安全错误
数据库的锁怎样保障安全
链接数据库报错是什么原因
数据库模型完整性约束
如何创建图书特色资源数据库
服务器安全书籍
武汉众信天成网络技术公司
网络安全与信息安全技术试题
AA设备软件开发
网络安全攻防p8
美信网络技术如何退款
软件开发各阶段都需要评审
上海装配式网络技术品牌
vue外卖软件开发
数据库问题要怎么解决
山东盛安网络技术
网络安全试题 小学
通过云服务器访问监控
数据库怎么筛选表
网络安全进校园黑板报内容
数据库中怎么计算学分总和
详细的软件开发失败案例
新仙剑ol数据库文件
监控网络安全防护
分布式数据库的数据特点
小程序代码放哪个服务器上
互联网对科技发展的积极影响
达梦数据库-2007
steam有中文服务器吗
手机软件开发学什么专业好
网络安全从哪开始
宝山区正规软件开发诚信服务