在flask中使用SQLAlchemy连接sqllite数据库

设置数据库路径非常重要:

方法:

1 配置数据库

basedir= os.path.abspath(os.path.dirname(__file__))  #获取当前文件的绝对路径

app = Flask(__name__)

# 拼接数据库的URL路径

#  os.path.join 把basedir和data.sqlite的路径拼接起来#
# data.sqlite为数据库文件,若该文件夹下没有这个文件会自动创建
app.config[‘SQLALCHEMY_DATABASE_URI‘] = ‘sqlite:///‘+ os.path.join(basedir,‘data.sqlite‘)

# 配置这个键之后,每次请求结束之后都会提交数据库的变动

app.config[‘SQLALCHEMY_COMMIT_ON_TEARDOWN‘] =True
db = SQLAlchemy(app)

2 定义模型

# 定义模型

 1 # db.Model是一个基类
 2 class Role(db.Model):
 3     # 对应的数据库表明
 4     __tablename__ =‘roles‘
 5     # 设置字段格式
 6     id = db.Column(db.Integer,primary_key=True)
 7     name = db.Column(db.String(64),unique=True)
 8     # 创建与其他表的关系
 9     users = db.relationship(‘User‘,backref=‘role‘,lazy=‘dynamic‘)
10
11     def  __repr__(self):
12         return ‘‘%self.name
13
14     class User(db.Model):
15         __tablename__ =‘users‘
16         id = db.Column(db.Integer,primary_key=True)
17         username= db.Column(db.String(64),unique=True,index=True)
18         role_id = db.Column(db.Integer,db.ForeignKey(‘roles.id‘))
19
20     def __repr__(self):
21         return‘‘%self.username

3 操作数据库

db.create_all()

总结:

1 调试代码遇到问题,要先把代码本身什么意思搞清楚,再想解决办法

在调试数据库连接时遇到:

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file

网上说可能是路径不对,我就开始修改

‘sqlite:///‘

这部分的内容,添加各种路径,然而却没有注意到这部分的内容

os.path.join(basedir,‘data.sqlite‘)

这部分就是文件的路径了,我在 ‘sqlite:///‘怎么加路径都不可能正确啊,吸取这次教训

2 遇到问题多看官方的api文档,基本的问题上面都有说明,在网上看的答案不一定适合现在的版本

3 在设置路径时,路径中不能有空格符,有空格的符的话也会报错

作者:思考者01
链接:https://www.jianshu.com/p/61bcd016bc6b
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/andy-0212/p/10061691.html

时间: 2024-07-30 15:50:56

在flask中使用SQLAlchemy连接sqllite数据库的相关文章

Python中使用SQLAlchemy连接Mysql数据库(单表操作)

一,SQLAlchemy的安装 使用 $ easy_install sqlalchemy 或 $ pip install sqlalchemy 如果出现什么错,就进去root用户下进行安装试试,或者网上查查 >>> import sqlalchemy >>> 这样说明成功了,切记是小写哦 二,使用 理论我也不懂,自己查查资料,现在用一个小的案例说一下使用步骤 1,在进行数据操作之前要先连上数据库. >>> from sqlalchemy import

Python中使用SQLAlchemy连接Mysql数据库2(多表连接操作)

http://blog.csdn.net/u011573853/article/details/51355113 在上面我们已经说了单表的一些操作,现在我们说一下多表的连接 >>> from sqlalchemy import distinct >>> from sqlalchemy.orm import aliased >>> Astu = aliased(Stu,'Astu') >>> Acla = aliased(Cla,'Ac

在MacOS下使用sqlalchemy 连接sqlserver2012 数据库

在MacOS下使用sqlalchemy 连接sqlserver 数据库 前言 最近有要求,要将数据库换成巨硬家的sqlserver 2012 因为在网上苦苦找不到sqlalchemy 配置连接SqlServer的具体中文步骤,翻了官方文档后把步骤整理出来 前期准备 已经安装好sqlalchemy 运行环境介绍 系统:MacOS 10.13.1 Beta Python 环境: 3.6.0 sqlalchemy 1.1.4 pycode 4.0.19 sqlserver 2012 实施步骤 在sql

如何在PHP5中通过PDO连接SQLite3数据库

通过PHP跟PDO配置SQLite数据库是一件很繁琐的事情,经过一下午的研究,终于理清了里面的思路.现在拿出来跟大家共享.初学,错误请指出. 首先我们先选择要使用的web server 软件,由于从兼容性跟性能方面的需求,我选择了目前来说最新版的apache. 第二步,我们要使用目前最新版本的PHP zip package .这里提示大家一下,经过我痛苦的反复的实验跟查看资料,如果大家想要使用PDO扩展连接到SQLite数据库的话,请你一定不要选择安装包,因为它不支持很多PHP的扩展库文件. 第

Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表,以及同步和异步执行模式)

系列文章导航 Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表) Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数) Adobe AIR中使用Flex连接Sqlite数据库(3)(查询) Adobe AIR中使用Flex连接Sqlite数据库(4)(事务) Flex,Fms3相关文章索引 Fms3和Flex打造在线多人视频会议和视频聊天(附原代码) 免费美女视频聊天,多人视频会议功能加强版本(Fms3和Flex开发(附源码))

Java中通过JDBC连接Oracle数据库

通过jdbc连接数据库,拢共分三步: 第一步:下载一个JDBC的驱动,然后把jar包扔到项目里并add to build path: 第二步:去本地oracle文件夹下找到“TNSNAMES.ORA”文件,打开找到对应数据库的连接字符串,作为jdbc的连接字符串: 第三步:写代码,通过jdbc连接数据库. 从网上找了段代码,做了下修改.以下为查询数据库表中所有字段及字段值类型,遍历数据库表中所有数据(其中xxx均为需要替换的信息): import java.sql.Connection; imp

在Eclipse中通过JDBC连接Oracle数据库并操作

一.JDBC释义 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制. 二.JDBC连接Oracle数据库的流程及原理 1)在开发环境中加载指定数据库的驱动

Win7x64中使用PowerDesigner连接Oralce数据库报“[Oracle][ODBC][Ora]ORA-12154:TNS:无法解析指定的连接标识符”错误解决方法

错误描述 操作系统是Win7 x64,Oracle服务端是Oracle11g x64,客户端是Oracle10gR2 x86. 使用PL-SQL Developer连接正常 使用系统ODBC连接正常.这里要注意的是,64位系统默认启动的是64位ODBC数据源管理器,默认指向的是服务端连接,所以需要为Oracle服务端也配置TNS Service Name,否则同样会连接报错.PowerDesigner默认启动的是32位的ODBC数据源管理器,程序路径为“%SystemRoot%\SysWOW64

Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决(对三层的例子配置有帮助)

Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLStoredProc.TSQLTable.TsqlServerMethod.TSQLMonitor.TSimpleDataSet).但是因为该组件只提供了各种数据库的抽象驱动,没有提供底层的与数据库直接交互的驱动库,因此,要想使用具体某种数据库,还需要搭配提供商驱动.本文以Delphi XE在Window