【发布时间】:2021-02-03 09:53:05
【问题描述】:
我想在 pythonanywhere 上部署我的项目。 Error.log 说服务器或机器无法打开我的数据库。在我的本地机器上一切正常。我在 YouTube 上观看了 Pretty Printed 的视频
这就是我在 app.py 中初始化的方式。这是我从error.log得到的
db_session.global_init("db/data.sqlite")
db_session 中的这个:
def global_init(db_file):
global __factory
if __factory:
return
if not db_file or not db_file.strip():
raise Exception("Необходимо указать файл базы данных.")
conn_str = f'sqlite:///{db_file.strip()}?check_same_thread=False'
print(f"Подключение к базе данных по адресу {conn_str}")
engine = sa.create_engine(conn_str, echo=False)
__factory = orm.sessionmaker(bind=engine)
from . import __all_models
SqlAlchemyBase.metadata.create_all(engine)
def create_session() -> Session:
global __factory
return __factory()
最后一件事是我的 wsgi.py:
import sys
path = '/home/r1chter/Chicken-beta'
if path not in sys.path:
sys.path.append(path)
import os
from dotenv import load_dotenv
project_folder = os.path.expanduser(path)
load_dotenv(os.path.join(project_folder, '.env'))
import app # noqa
application = app.app()
【问题讨论】:
-
尝试调试 db 文件的路径 -- 可能相对路径在这种情况下令人困惑?
-
Yooo 兄弟,它成功了,感谢上帝和你
-
很高兴我能帮上忙。只需将此添加为您问题的答案,以便您可以将问题标记为已解决。
标签: flask-sqlalchemy web-deployment pythonanywhere