[windows pycharm] flask - sqlite3.OperationalError: unable to open database file

項目文件樹圖

在這裏插入圖片描述
<app.py>

# 導入所有的模塊
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
from contextlib import closing

# 配置文件
DATABASE = 'flask1.db'
ENV = 'development'
DEBUG = True
SECRET_KEY = 'development key'
USERNAME = 'admin'
PASSWORD = 'default'

# 創建應用
app = Flask(__name__)
app.config.from_object(__name__)
def connect_db():
    return sqlite3.connect(app.config['DATABASE'])

def init_db():
    with closing(connect_db()) as db:
        with app.open_resource('schema.sql') as f:
            db.cursor().executescript(f.read().decode())
        db.commit()

if __name__ == '__main__':
    app.run()

報錯

>>> from app import init_db
>>> init_db()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "E:\PycharmProjects\untitled\flask1\app.py", line 21, in init_db
    with closing(connect_db()) as db:
  File "E:\PycharmProjects\untitled\flask1\app.py", line 18, in connect_db
    return sqlite3.connect(app.config['DATABASE'])
sqlite3.OperationalError: unable to open database file

解決方法

step1 檢查路徑

>>> import os
>>> os.getcwd()
'E:\\PycharmProjects\\untitled\\flask1'

這裏是在同一文件夾,如果不在同一文件夾需要重定向

os.chdir('E:/PycharmProjects/untitled/flask1')

step2 將py文件代碼中配置db文件前面加路徑符號

<app.py>

# 配置文件
DATABASE = './flask1.db'

在這裏插入圖片描述

此時E:/PycharmProjects/untitled/flask1下會自動創建 flask1.db 文件
在這裏插入圖片描述
注意:大部分人用的源碼裏py文件名稱是flaskr.py ,最後生成的也是flaskr.db,我這裏用的是自己命名的 flask1,如果你用的是flaskr,則把上面代碼裏的flask1.db 都替換成flaskr.db 即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章