V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
qmwk
V2EX  ›  Python

Flask+SQLAlchemy 创建数据库失败

  •  
  •   qmwk · 2015-11-21 16:35:26 +08:00 · 3920 次点击
    这是一个创建于 3294 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人小白 实在是没辙了
    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

    万分感激各位 谢谢
    14 条回复    2015-11-22 11:02:50 +08:00
    jas0ndyq
        1
    jas0ndyq  
       2015-11-21 18:47:40 +08:00
    路径问题
    qmwk
        2
    qmwk  
    OP
       2015-11-21 19:15:06 +08:00
    @jas0ndyq 您好 能否指出是哪里的路径出了问题呢 谢谢- -
    qmwk
        3
    qmwk  
    OP
       2015-11-21 19:16:15 +08:00
    @jas0ndyq 因为是对着教程一步步敲得 然后也把教程里的源码拿下来看了 没找出来问题。。搜了好久的解决方案了。。
    445141126
        4
    445141126  
       2015-11-21 19:23:03 +08:00
    sqlite://// 换成 sqlite:///
    qmwk
        5
    qmwk  
    OP
       2015-11-21 19:28:26 +08:00
    @445141126 这个也已经换过了 并没有用- -谢谢
    bnpysse
        6
    bnpysse  
       2015-11-21 19:31:30 +08:00   ❤️ 1
    是不是权限的问题,我记得曾遇到过在某个目录里面没有权限创建数据库文件的问题。可以用用 chmod 把当前目录的权限更改一下地说
    jas0ndyq
        7
    jas0ndyq  
       2015-11-21 19:35:52 +08:00   ❤️ 1
    @qmwk 你把路径直接写出来试试,不用 os 的方法。
    Ge4Los
        8
    Ge4Los  
       2015-11-21 19:40:11 +08:00   ❤️ 1
    似乎是权限问题,没有 sqlite3 数据库文件所在目录的写权限。
    qmwk
        9
    qmwk  
    OP
       2015-11-21 19:55:23 +08:00
    @jas0ndyq 的确是路径的问题 我把路径直接写出来 然后改了下编码 中文路径下 ok 了 也就成功了 但是还是不知道为什么 之前的方式创建失败 谢谢大家 QAQ @Ge4Los @bnpysse
    laiqs2011
        10
    laiqs2011  
       2015-11-21 20:06:09 +08:00
    basedir 中是不是含中文
    qmwk
        11
    qmwk  
    OP
       2015-11-21 20:17:54 +08:00
    @laiqs2011 是的 因为天翼网的原因没有用 linux 用的 win10 然后就有很蛋疼的中文目录
    laiqs2011
        12
    laiqs2011  
       2015-11-21 20:22:34 +08:00
    @qmwk 中文路径很容易带来各种问题
    qmwk
        13
    qmwk  
    OP
       2015-11-21 20:25:58 +08:00
    @laiqs2011 是啊 很蛋疼= =
    dsp2138
        14
    dsp2138  
       2015-11-22 11:02:50 +08:00
    我用的 peewee
    也有很多蛋疼的地方!
    SQLAlchemy 很详细很周到,但也很麻烦
    peewee 简略,但有些地方也太简了!~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2647 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:47 · PVG 23:47 · LAX 07:47 · JFK 10:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.