Flask项目部署时需要按照database中定义好的模型类来创建数据表。直接在database.py中写db.create_all()
不起作用,报错:
...
from app import db, logger
ModuleNotFoundError: No module named 'app'
更新:需要在py文件中加入
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
这样就可以找到路径
搜索了很久没有成功地在单独的文件(database.py)中执行db.create_all()
,所以先在__init__.py
写了创建的语句,注意要写在最后import database
的后面才起作用。
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
from app import database
db.create_all()
创建好了之后把这个注释掉。