flask 数据库操作

说到flask中操作数据库首先要先引入一个概念:ORM

ORM 全拼Object-Relation Mapping.

中文意为 对象-关系映射

其实它就是模型对象的概念,把数据库的信息映射成一个个对象来操作,

而不需要编写sql语句,简单来说就是面向对象编程的概念。

flask 中的SQLAlchemy 就是一个ORM框架,它依赖于pymysql,使用关系对象映射对数据库进行操作

SQLAlchemy 的安装命令:

pip install flask-sqlalchemy

下面就用代码展示使用SQLAlchemy对数据库进行增删改查的操作:

# -*- encoding: utf-8 -*-

from flask import Flask

from flask_sqlalchemy import SQLAlchemy

#导入时间模块

import datetime,time

#建立对象

app = Flask(__name__)

#建立数据库对象

db = SQLAlchemy(app)

#导入配置文件

app.config.from_pyfile(‘config.ini‘)

#建立数据库类

class Student(db.Model):

#声明表名

__tablename__ = ‘student‘

#id字段

id = db.Column(db.Integer,primary_key=True)

#name字段

name = db.Column(db.String

#password字段

password = db.Column(db.String)

#日期时间字段

shijian = db.Column(db.DateTime)

#日期

date = db.Column(db.Time)

#性别

gender = db.Column(db.Enum)

#身高

height = db.Column(db.DECIMAL)

#文本

con = db.Column(db.Text)

#时间

time = db.Column(db.Time)

@app.route(‘/‘)

def index():

#将对象属性赋值入库

#将当前的生日期时间格式化为mysql的日期时间格式

student = Student(

shijian = datetime.datetime.now(),

#格式化日期,把时间去掉,只留日期

date = datetime.datetime.now().strftime("%Y-%m-%d"),

#只取时间需要导入time模块,格式化时间

time = time.strftime(‘%H:%M:%S‘)

)

#调用入库方法

db.session.add(student)

return ‘入库操作‘

#数据库的删除操作

@app.route(‘/del‘)

def delt():

#删除根据某个字段做删除,filter_by可以理解为where条件限定

#翻译为 delete from Student where id = 1

Student.query.filter_by(id=3).delete()

return ‘这里是删除操作‘

#数据库的修改操作

@app.route(‘/edit‘)

def edit_user():

#根据某个字段做修改操作

#翻译为 update student set name = ‘张三’ where id= 2

Student.query.filter_by(id=4).update({‘name‘:‘张三‘})

return ‘这里是修改操作‘

#数据库的查询操作

@app.route(‘/select‘)

def select_user():

#简单的全量查询

#翻译为 select * from student

# ulist = student.query.all()

# print(ulist)

# for item in ulist:

# print(item.name)

#只取一条,没有last取值方法

#翻译为select * from user limit 1

ulist = User.query.first()

print(ulist)

if __name__ == "__main__":

app.run()

当然SQLAlchemy这种对数据库的操作方法也有弊端,可能有些人也不习惯用,

也可以用原生的sql语句对数据库进行操作。如:

items = db.session.execute(‘select * from student order by id‘)

#将结果集强转为;list

items = list(items)

print(items)

其中的execute方法是依赖于pymysql进行执行操作的,所以也可以使用原生sql语句操作

 

原文地址:https://www.cnblogs.com/ssjz12/p/10181615.html

时间: 2024-08-30 06:07:22

flask 数据库操作的相关文章

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

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

flask学习之数据库操作一

数据库操作使用 sqlalchemy模块安装(需安装MySQL-python/python-devel) pip install flask-sqlalchemy 目录结构 ├── app │   ├── __init__.py │   └── models.py ├── config.py 配置环境 vim config.py #coding:utf-8 SQLALCHEMY_DATABASE_URI = 'mysql://mysqlTest:[email protected]/mysqlTe

Python框架学习之Flask中的数据库操作

数据库操作在web开发中扮演着一个很重要的角色,网站中很多重要的信息都需要保存到数据库中.如用户名.密码等等其他信息.Django框架是一个基于MVT思想的框架,也就是说他本身就已经封装了Model类,可以在文件中直接继承过来.但是在Flask中,并没有把Model类封装好,需要使用一个扩展包,Flask-SQLAlchemy.它是一个对数据库的抽象,让开发者不用这些编写SQL语句,而是使用其提供的接口去操作数据库,这其中涉及到一个非常重要的思想:ORM什么是ORM呢?下面我们就来详细讲解一下.

那些年我们学Flask-SQLAlchemy,实现数据库操作,分页等功能

那些年我们学Flask-SQLAlchemy 实现数据库操作,分页等功能  Flask-SQLAlchemy库让flask更方便的使用SQLALchemy,是一个强大的关系形数据库框架,既可以使用orm方式操作数据库,也可以使用原始的SQL命令. Flask-Migrate 是一个数据迁移框架,需要通过Flask-script库来操作. 一.配置Flask-SQLAlchemy 程序使用的数据库地址需要配置在SQLALCHEMY_DATABASE_URI中,SQLALchemy支持多种数据库,配

Flas-SQLAchemy数据库操作使用学习笔记

Flas-SQLAchemy数据库操作使用学习笔记 1.为你的Flask应用加载Flask-SqlAlchemy扩展 Code example: 1.1from flask import Flask f rom flask.ext.sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' db = SQLAlchemy(ap

Django与数据库操作

Django与数据库操作 数据库连接的方法 web 框架 django --- 自己内部实现 (ORM) + pymysql(连接) Flask,tornado --- pymysql SQLArchemy (ORM) ORM 操作简单 (只把对象和类的操作 生成对应的sql语句) 创建,修改 数据表的时候简单 速度比原生的sql慢 -- 先转换成sql语句 原生sql执行会快 脚本运行Django的ORM操作数据库 import os,sys import django sys.path.ap

Flask数据库基本操作-SQLAlchemy

Flask数据库D:使用扩展包flask-sqlalchemy来操作数据库(增删改查)E:通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升U:常用的SQLAlchemy字段类型 类型名 python中类型 说明 Integer int 普通整数,一般是32位 SmallInteger int 取值范围小的整数,一般是16位 BigInteger int或long 不限制精度的整数 Float float 浮点数 Numeric decimal.Decim

C# .NET更智能的数据库操作的封装

前述: 对数据库操作的封装,相信网络上已经有一大堆,ORM框架,或者是.NET本身的EF,都很好的支持数据库操作.这篇文章是分享自己所思考的,对数据库操作的简单封装.我对于这篇文章,认为被浏览者所关注重点的是怎么分析设计数据库操作封装,代码是其次.而且,这是我第一篇文章,为了想好怎么实现花了些天,代码是博客发表时现写的.所以我想,使用可能还有bug,而且没有try catch异常的设计. 这个框架我理应做到对数据库无关,无论是哪个数据库都能够使用.不过,重点在于分析,而不是代码.所以,为了更好的

python--第十一天总结(paramiko 及数据库操作)

数据库操作 Python 操作 Mysql 模块的安装 linux:     yum install MySQL-python window:     http://files.cnblogs.com/files/wupeiqi/py-mysql-win.zip