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:[email protected]: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=‘[email protected]‘,password=‘123456‘,image=‘/upload/img-0000.jpg‘,role_id=role1.rid)
    user2 = User(name=‘Jack‘,email=‘[email protected]‘,password=‘654321‘,image=‘/upload/img-0000.jpg‘,role_id=role2.rid)
    user3 = User(name=‘lili‘,email=‘[email protected]‘,password=‘345678‘,image=‘/upload/img-0000.jpg‘,role_id=role1.rid)
    user4 = User(name=‘Pack‘,email=‘[email protected]‘,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()

‘‘‘

  

原文地址:https://www.cnblogs.com/snow-wolf-1/p/11594814.html

时间: 2024-10-31 03:47:33

flask db操作的相关文章

flask 数据库操作

说到flask中操作数据库首先要先引入一个概念:ORM ORM 全拼Object-Relation Mapping. 中文意为 对象-关系映射 其实它就是模型对象的概念,把数据库的信息映射成一个个对象来操作, 而不需要编写sql语句,简单来说就是面向对象编程的概念. flask 中的SQLAlchemy 就是一个ORM框架,它依赖于pymysql,使用关系对象映射对数据库进行操作 SQLAlchemy 的安装命令: pip install flask-sqlalchemy 下面就用代码展示使用S

ceilometer alarm 创建过程中的DB操作及优化

创建一个ceilometer alarm需要4次DB操作: api/controllers/v2/alarms.py 1. is_over_quota 每一次都需要查询该user/project的所有alarms 2. 判断alarm name是否已经存在于DB中,也需要查询该user/project的所有alarms        # make sure alarms are unique by name per project.        alarms = list(conn.get_a

PHP+MySQL:测试连接+基本DB操作

PHP使用MySQL,从连接.创建.到结果显示 1 <?php 2 //连接MySQL测试 3 $db = mysql_connect("localhost","root","wenwen"); 4 if (!$db) 5 { 6 die('Could not connect: ' . mysql_error()); 7 } 8 else 9 { 10 echo "connect success!"; 11 } 12 1

Kotlin 封装 DB 操作举例

首先继承SQLiteOpenHelper类,建一个自己的BaseDbHelper.kt class BaseDbHelper(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) { private val TAG = BaseDbHelper::class.java!!.getSimpleName() companion object { private val DB_NAME = "account.d

适用于yii1.1的thinkphp化的db操作类

前段时间的一个项目是要对一个用yii1.1写的商城做修改,不怎么好写,不过比面向过程的ecshop好得多,之前刚开始改ecshop还真是头大 yii1.1其中数据库操作花了我不少时间去找各种例子进行测试,出于日后可能还要改的原因,我将数据库的一些操作改成了thinkphp的形式,代码如下 <?php /**gcud数据库操作 * @version 20191231 */ class gcudDb { private $TableName; private $Conditions; private

redis DB操作

数据库操作 1)  REDIS是全部由KEY和VALUE值构成,对数据库的增删改查操作都是基于在通过key 映射到哈希槽 然后通过哈希槽进行单向链式遍历 查找到value和具体的key. 同样 在查看大师写的源码时可以说是一种很好借鉴: 这里所有的操作已经主体源码引用都是zai redis/src/db.c下进行的: 查 robj *lookupKey(redisDb *db, robj *key) {    dictEntry *de = dictFind(db->dict,key->ptr

flask + pymysql操作Mysql数据库

安装flask-sqlalchemy.pymysql模块 pip install flask-sqlalchemy pymysql 安装Mysql数据库 from flask.ext.sqlalchemy import SQLAlchemy from flask import Flask '''配置数据库''' app = Flask(__name__) app.config['SECRET_KEY'] ='hard to guess' # 这里登陆的是root用户,要填上自己的密码,MySQL

【Flask】Flask Cookie操作

### 什么是cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了.cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB.

flask 数据库操作(增删改查)

数据库操作 现在我们创建了模型,生成了数据库和表,下面来学习常用的数据库操作,数据库操作主要是CRUD,即Create(创建).Read(读取/查询).Update(更新)和Delete(删除). SQLAlchemy使用数据库会话来管理数据库操作,这里的数据库会话也称为事务(transaction). Flask-SQLAlchemy自动帮我们创建会话,可以通过db.session属性获取. 数据库中的会话代表一个临时存储区,你对数据库做出的改动都会存放在这里.你可以调用add()方法将新创建