我正在用flask_restful
创建一个个人应用程序,我用一个models.py
和app.py
做所有的事情,但是这个应用程序将会增长,所以我决定进行一些文件夹重组。你知道吗
我目前的结构如下:
/project_folder
application_name
__init__.py
controllers.py
models.py
config.py
manage.py
run.py
tests
__init__.py
test_controller.py
目前为止一切正常,但我希望结构如下:
/project_folder
application_name
__init__.py
controllers
__init__.py
brewery_controller.py
...others
models
__init__.py
base_model.py
brewery.py
...others
config.py
manage.py
run.py
tests
__init__.py
test_controller.py
但我好像没法让它工作。下面是应用程序__init__.py
#/project_folder/application_name/__init__.py
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_restful import Api
from controllers import BreweryList, BreweryResource
from models import db
def initApp(config):
app = Flask(__name__)
app.config.from_object(config)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
api = Api(app)
api.add_resource(BreweryList, '/breweries')
api.add_resource(BreweryResource, '/breweries/<brewery_id>')
return app
我试过了
from brewery_controller import BreweryList, BreweryResource
from base_model import db
没有运气。如果我取消对Brewery classes import行的注释,ImportError: cannot import BreweryList
和db
也一样。你知道吗
controllers/__init__.py
和models/__init__.py
都是空的。你知道吗
这里还有run.py
import os
from beerinv import initApp
if __name__ == '__main__':
app = initApp(os.environ['APP_SETTINGS'])
app.run()
可以通过以下@davidism注释解决问题,方法是放置完整的导入路径:
相关问题 更多 >
编程相关推荐