我有一个具有以下目录结构的烧瓶应用程序:
- 我的应用程序/
- 应用程序.py
__init__.py
- 楷模/
__init__.py
- 用户.py
这些模型使用 Flask-SQLAlchemy,因此,它们需要db
从application.py
用户.py:
import sys,os
sys.path.append('/path/to/application/package')
from testapp import db
class User(db.Model):
id = db.Column(db.Integer,primary_key=True)
username = db.Column(db.String(255),unique=True)
age = db.Column(db.Integer)
def __init__(self,username,age):
self.username = username
self.age = age
def __repr__(self):
return '<User %r>' % self.username
因为任何模型都需要访问应用程序的 SQLAlchemy 实例、db
属性,所以我必须将整个包放在路径上,然后从主应用程序模块导入。为了理智起见,我想将模型保存在单独的文件中。我需要将路径代码放在每个模型的顶部吗?有没有更好的办法?我宁愿没有这样的完整路径输入,因为它们可能被部署到具有不同目录结构的不同主机上。理想情况下,会有某种方法在内部处理路径,因此当它通过我用作另一个用户时,mod_wsgi
我不必手动更改代码。