Я использую Python 3.8.1
Flask latest
и приложение работает нормально, но не может подключить том docker из SQLAlchemy, и если база данных не существует, она должна создать базу данных, но я не могу подключить свой общий docker том в моем Python Flask
приложении.
Файл Config.py:
import os
basedir = os.path.abspath(os.path.dirname(__file__))
DATA_PATH = "/database"
if os.path.exists(DATA_PATH) == False:
os.mkdir(DATA_PATH)
class Config(object):
# set a proper secret key here or is the .flaskenv file
SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
SQLALCHEMY_DATABASE_URI = 'sqlite://database/app.db'
SQLALCHEMY_TRACK_MODIFICATIONS = False
init .py файл:
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_login import LoginManager
app = Flask(__name__, static_url_path='', static_folder='static')
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
login = LoginManager(app)
login.login_view = 'login'
from app import routes, models
Docker пробег:
docker run -p 8080:8080 -it --name abc -v localdb:/database --rm abc:v1
Ошибка 1:
xc.ArgumentError(
sqlalchemy.exc.ArgumentError: Invalid SQLite URL:
sqlite://database//app/app/app.db
Valid SQLite URL forms are:
sqlite:///:memory: (or, sqlite://)
sqlite:///relative/path/to/file.db
sqlite:////absolute/path/to/file.db
Ошибка 2:
Для SQLALCHEMY_DATABASE_URI = 'sqlite:///database/app.db'
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file
(Background on this error at: http://sqlalche.me/e/e3q8)