【Flask】Flask项目sqlite数据库操作(代码实现)

简介: Flask项目sqlite数据库操作(代码实现)

sqlite相关操作有:

  • 1.将游标获取的Tuple根据数据库列表转换为Dict
  • 2.获取(连接)数据库
  • 3.执行SQL语句不返回数据结果
  • 4.执行用于选择数据的SQL语句,参数one代表是否取第一条
  • 5.关闭连接(在当前app上下文销毁时关闭连接)

写成函数形式,便于重复调用,使用pymysql,稍加修改也可以用于mysql数据库。

# 数据库操作相关函数
import sqlite3
from flask import Flask, g
# 数据库db文件url,换了环境后注意修改!!!
DATABASE_URL = r'YOURPATH\safe.db'
app = Flask(__name__)


# 数据库系列操作
# 1.将游标获取的Tuple根据数据库列表转换为Dict
def make_dicts(cursor, row):
    return dict((cursor.description[i][0], value) for i, value in enumerate(row))  # enumerate既要遍历索引又要遍历元素时


# 2.获取(连接)数据库
def get_db():
    db = getattr(g, '_database', None)
    if db is None:
        db = g._database = sqlite3.connect(DATABASE_URL)
        db.row_factory = make_dicts
    return db


# 3.执行SQL语句不返回数据结果
def execute_sql(sql, prms=()):
    c = get_db().cursor()
    c.execute(sql, prms)
    c.connection.commit()


# 4.执行用于选择数据的SQL语句,参数one代表是否取第一条
def query_sql(sql, prms=(), one=False):
    c = get_db().cursor()
    result = c.execute(sql, prms).fetchall()
    c.close()
    return (result[0] if result else None) if one else result


# 5.关闭连接(在当前app上下文销毁时关闭连接)
@app.teardown_appcontext
def close_connection(exception):
    db = getattr(g, '_database', None)
    if db is not None:
        db.close
相关文章
|
2天前
|
缓存 前端开发 JavaScript
flask各种版本的项目,终端命令运行方式的实现
flask各种版本的项目,终端命令运行方式的实现
|
2天前
|
项目管理 数据库
基于jeecg-boot的项目管理系统(一、部分数据库)
基于jeecg-boot的项目管理系统(一、部分数据库)
18 0
|
1天前
|
SQL 开发框架 数据库连接
uniapp中sqlite数据库常用操作的简单封装
uniapp中sqlite数据库常用操作的简单封装
|
2天前
|
数据库 数据库管理 关系型数据库
|
2天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
2天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
2天前
|
Java 关系型数据库 测试技术
Java代码一键生成数据库文档(案例详解)
Screw是一个自动化数据库文档生成工具,能根据数据库表结构快速生成简洁、多格式(HTML、Word、Markdown)的文档,支持MySQL、MariaDB等多数据库。它使用Freemarker模板,允许用户自定义样式。依赖包括HikariCP数据库连接池和对应JDBC驱动。通过在Java代码或Maven插件中配置,可方便生成文档。示例代码展示了如何在测试用例中使用Screw。文档效果依赖于数据库中的表和字段注释。
|
2天前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之在DataWorks中,“项目空间”、“数据库”和“引擎实例”之间存在怎样的关系
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
29 0
|
2天前
|
SQL 存储 Ubuntu
在ubuntu中将dict.txt导入到数据库sqlite3
这样,你就成功将 `dict.txt` 中的数据导入到名为 `mydatabase.db` 的SQLite3数据库中的 `words` 表格中了。请根据实际情况调整表格结构和数据导入命令。
19 0
|
2天前
|
数据安全/隐私保护 Python
【Python】Python Flask token身份认证(附完整代码)
【Python】Python Flask token身份认证(附完整代码)