База данных колб в папке экземпляра

#python #flask

Вопрос:

Я делаю веб-приложение, используя колбу рамках проекта, это очень простой сайт с одной страницей, что люди могут вводить слова в, он отлично работает, когда я пытаюсь запустить его в развитии VM, который я использую, но когда я пытаюсь git clone его в пи, он создает базу данных в папке instance и доступ в веб-приложение через браузер выдает ошибку БД не найден

Чтобы запустить сервер без меня, я ничего не делаю, я использую crontab

 @reboot sleep 60 amp;amp; sh /home/kali/webapp/start.sh
 

Что касается start.sh

 /usr/bin/python3 /home/kali/webapp.py runserver 
 

config.py

 import random 
import string 




class Config:

    SECRET_KEY = ''.join(random.choice(string.ascii_letters   string.digits) for i in range(60))

    SQLALCHEMY_DATABASE_URI = 'sqlite:///_DB_.db'
    SQLALCHEMY_TRACK_MODIFICATIONS = False

class DevelopmentConfig(Config):
    DEBUG = True 

class ProductionConfig(Config):
    DEBUG = False 

config = {
    'dev' : DevelopmentConfig,
    'prod': ProductionConfig,
    }
 

Что касается app.py

 from flask import Flask ,render_template,request ,url_for ,redirect ,send_from_directory
from webui import webui 
from flask_script import Manager
from flask_security import current_user
import os 
from models import db 
from models import mail
from config import config

app = Flask(__name__)
app.config.from_object(config['dev'])
app.register_blueprint(webui)
db.init_app(app)
manager = Manager(app)

@manager.command
def initdb():
    db.drop_all()
    db.create_all()
    db.session.commit()

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

Я создаю базу данных, введя эту команду в терминале

 python3 app.py initdb
 

Я попытался скопировать базу данных за пределы instance папки и внутри webapp папки, но все равно получил ту же ошибку

Комментарии:

1. Папка экземпляра расположена по умолчанию instance/ . Вы можете использовать open_instance_resource() для открытия файла из этой папки или open_resource() для открытия файла ресурсов относительно root_path для чтения.

2. Дело в том, что когда я создаю и запускаю веб-приложение в виртуальной машине, я не получаю папку экземпляра, но когда я запускаю его на pi по ssh, я получаю папку экземпляра

3. Flask не создает папку экземпляра автоматически. Смотрите здесь пример