flask db操作
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__)
# app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = False
# app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
# app.config['SQLALCHEMY_ECHO'] = True # pip install mysql-connecto class Config(object):
'''配置参数''' SQLALCHEMY_DATABASE_URI = 'mysql+mysqlconnector://root:123456@127.0.0.1:3306/flask_db?charset=utf8'
#自动跟踪数据库
SQLALCHEMY_TRACK_MODIFICATIONS = True app.config.from_object(Config) db = SQLAlchemy(app) class User(db.Model):
__tablename__ = 'bd_user'
uid = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(64),unique=True)
email = db.Column(db.String(64),unique=True)
password = db.Column(db.String(255))
image = db.Column(db.String(255))
role_id = db.Column(db.Integer,db.ForeignKey('db_roles.rid')) class Role(db.Model):
__tablename__ = 'db_roles'
rid = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(64),unique=True)
users = db.relationship("User",backref="role") if __name__ == '__main__':
db.drop_all()
db.create_all()
role1 = Role(name="admin") # session记录对象任务
db.session.add(role1)
# 提交任务到数据库中
db.session.commit() role2 = Role(name='stuff')
db.session.add(role2)
db.session.commit() user1 = User(name='Tom',email='tom@163.com',password='123456',image='/upload/img-0000.jpg',role_id=role1.rid)
user2 = User(name='Jack',email='jack@163.com',password='654321',image='/upload/img-0000.jpg',role_id=role2.rid)
user3 = User(name='lili',email='lili@163.com',password='345678',image='/upload/img-0000.jpg',role_id=role1.rid)
user4 = User(name='Pack',email='pack@163.com',password='964152',image='/upload/img-0000.jpg',role_id=role2.rid) db.session.add_all([user1,user2,user3,user4])
db.session.commit() '''
Role.query.all() 查询所有 r2 = Role.query.first()
r3 = Role.query.get(2)
r3.name db.session.query(Role).all()
db.session.query(Role).get(2)
db.session.query(Role).first() User.query.filter_by() user = User.query.filter_by(name="Tom",role_id=1).first() user = User.query.filter(User.name=="Tom",User.role_id==1).first() 条件查询
from sqlalchemy import or_ User.query.filter(or_(User.name=="admin",User.email.endswith("163.com"))).all() User.query.filter().offset().limit().order_by().all() # offset跳过两条 limit取两条
User.query.offset(1).all()
User.query.offset(1).limit(2).all() #不推荐
User.query.order_by("-uid").all()
#推荐 降序
User.query.order_by(User.uid.desc()).all() #升序
User.query.order_by(User.uid).all()
User.query.order_by(User.uid.asc()).all() # 分组
from sqlalchemy import func
db.session.query(User.role_id,func.count(User.role_id)).group_by(User.role_id).all() '''
flask db操作的更多相关文章
- Flask 模型操作
ORM 简称 ORM, O/RM, O/R Mapping 持久化模型 特征 数据表和编程类的映射 数据类型映射 字段属性映射类的属性和数据类型 关系映射 表于表之间的关系对应到 编程类的关系上 优点 ...
- 实验3、Flask数据库操作-如何使用Flask与数据库
1. 实验内容 数据库的使用对于可交互的Web应用程序是极其重要的,本节我们主要学习如何与各种主要数据库进行连接和使用,以及ORM的使用 2. 实验要点 掌握Flask对于各种主要数据库的连接方法 掌 ...
- ceilometer alarm 创建过程中的DB操作及优化
创建一个ceilometer alarm需要4次DB操作: api/controllers/v2/alarms.py 1. is_over_quota 每一次都需要查询该user/project的所有 ...
- 笔记-flask基础操作
笔记-flask基础操作 1. 前言 本文为flask基础学习及操作笔记,主要内容为flask基础操作及相关代码. 2. 开发环境配置 2.1. 编译环境准备 安装相关Lib ...
- Thinkphp5.0 的Db操作
Thinkphp5.0 的Db操作 连接操作: <?php namespace app\index\controller; use think\Controller; use think\Db; ...
- flask 运行 flask db init 报错,init-db 命令找不到
flask init-db 结果是 `Error: No such command “init-db”. 那是因为init-db 已经被 flask db init 给代替了 运行 flask db ...
- Flask db init 抛出KeyError: 'migrate’这个问题
问题 目录下执行flask db init 结果 抛出KeyError: 'migrate'这个问题 ## 原因 初始化Migrate对象时没有加db 解决: appfactory.py import ...
- 03 flask数据库操作、flask-session、蓝图
ORM ORM 全拼Object-Relation Mapping,中文意为 对象-关系映射.主要实现模型对象到关系数据库数据的映射. 1.优点 : 只需要面向对象编程, 不需要面向数据库编写代码. ...
- flask数据库操作
Python 数据库框架 大多数的数据库引擎都有对应的 Python 包,包括开源包和商业包.Flask 并不限制你使用何种类型的数据库包,因此可以根据自己的喜好选择使用 MySQL.Postgres ...
随机推荐
- 20101010 exam
目录 2018 10.10 exam 解题报告 T1:LOJ #10078 新年好 题目描述(原题来自:CQOI 2005): 输入格式: 输出格式: 样例输入: 样例输出: 数据范围与提示: 思路: ...
- uni-app 组件
组件:组件时视图层的基本组成单元 <template> <view> <tagname property = "value"> content ...
- nginx 访问控制之 request_uri
$request_uri比$docuemnt_uri多了请求的参数. 主要用来针对请求的uri中的参数进行控制. 示例: if ($request_uri ~ "gid=\d{9,12}&q ...
- 第09组 Alpha冲刺(3/6)
队名:观光队 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 完成服务器连接数据库部分代码 展示GitHub当日代码/文档签入记录 接下来的计划 服务器网络请求,vu ...
- 将图片文件转成BASE64格式
html5Reader (file, item) { const reader = new FileReader() reader.onload = (e) => { this.$set(ite ...
- fluent在运行时改变重力方向方法总结
Fluent版本:19.0(其他版本应该也适用) 这里我们用一个简单的算例(同心环中的自然对流)来说明 算例来自<ANSYS Fluid Dynamics Verification Manual ...
- BiseNet阅读总结
一.思路 语义分割既需要丰富的空间信息,又需要较大的感受野.然而,现代方法通常会牺牲空间分辨率来实现实时推理速度,导致性能低下.本文提出了一种新的双边分割网络(BiSeNet)来解决这一难题.我们首先 ...
- filebeat kafka java日志收集
filebeat.modules:- module: kafka log: enabled: truefilebeat.prospectors:- type: log enabled: true pa ...
- 数据接口-免费版(股票数据API)
获取股票数据的源头主要有:数据超市.雅虎.新浪.Google.和讯.搜狐.ChinaStockWebService.东方财富客户端.证券之星.网易财经. 数据超市 2016年5月6日更新.根据最近频繁 ...
- 责任链模式(chainOfResponsibility)
参考文章:http://wiki.jikexueyuan.com/project/design-pattern-behavior/chain-four.html 定义: 使多个对象都有机会处理请求,从 ...