Flask+SQLAlchemy 创建数据库失败

2015-11-21 16:35:26 +08:00
 qmwk
本人小白 实在是没辙了
config.py
import os
basedir=os.path.abspath(os.path.dirname(__file__))
SQLALCHEMY_DATABASE_URI='sqlite:////'+os.path.join(basedir,'app.db')
SQLALCHEMY_MIGRATE_REPO=os.path.join(basedir,'db_repository')


db_create.py
from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
from app import db
import os.path

db.create_all()
if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
api.create(SQLALCHEMY_MIGRATE_REPO,'database repository')
api.version_control(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO)
else:
api.version_control(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO,api.version(SQLALCHEMY_MIGRATE_REPO))

这里一直报错 查了好久资料了 修改过文件夹属性 也是绝对路径 但是一直报错
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file

万分感激各位 谢谢
3791 次点击
所在节点    Python
14 条回复
jas0ndyq
2015-11-21 18:47:40 +08:00
路径问题
qmwk
2015-11-21 19:15:06 +08:00
@jas0ndyq 您好 能否指出是哪里的路径出了问题呢 谢谢- -
qmwk
2015-11-21 19:16:15 +08:00
@jas0ndyq 因为是对着教程一步步敲得 然后也把教程里的源码拿下来看了 没找出来问题。。搜了好久的解决方案了。。
445141126
2015-11-21 19:23:03 +08:00
sqlite://// 换成 sqlite:///
qmwk
2015-11-21 19:28:26 +08:00
@445141126 这个也已经换过了 并没有用- -谢谢
bnpysse
2015-11-21 19:31:30 +08:00
是不是权限的问题,我记得曾遇到过在某个目录里面没有权限创建数据库文件的问题。可以用用 chmod 把当前目录的权限更改一下地说
jas0ndyq
2015-11-21 19:35:52 +08:00
@qmwk 你把路径直接写出来试试,不用 os 的方法。
Ge4Los
2015-11-21 19:40:11 +08:00
似乎是权限问题,没有 sqlite3 数据库文件所在目录的写权限。
qmwk
2015-11-21 19:55:23 +08:00
@jas0ndyq 的确是路径的问题 我把路径直接写出来 然后改了下编码 中文路径下 ok 了 也就成功了 但是还是不知道为什么 之前的方式创建失败 谢谢大家 QAQ @Ge4Los @bnpysse
laiqs2011
2015-11-21 20:06:09 +08:00
basedir 中是不是含中文
qmwk
2015-11-21 20:17:54 +08:00
@laiqs2011 是的 因为天翼网的原因没有用 linux 用的 win10 然后就有很蛋疼的中文目录
laiqs2011
2015-11-21 20:22:34 +08:00
@qmwk 中文路径很容易带来各种问题
qmwk
2015-11-21 20:25:58 +08:00
@laiqs2011 是啊 很蛋疼= =
dsp2138
2015-11-22 11:02:50 +08:00
我用的 peewee
也有很多蛋疼的地方!
SQLAlchemy 很详细很周到,但也很麻烦
peewee 简略,但有些地方也太简了!~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/237880

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX