#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 не создает папку экземпляра автоматически. Смотрите здесь пример