【发布时间】:2015-05-14 00:40:56
【问题描述】:
所以我正在尝试使用 Flask-Restful 制作一个 API,但我找到的所有示例都将所有内容都放入一个 app.py 文件中。我在Flask-Restful docs 中找到了解释如何构建 API 的信息,但它不包括使用数据库的任何内容。我已经发布了我想出的东西,如果我对一些数据进行硬编码,它就可以工作,但是当我将db 导入users.py 时,我收到一个错误ImportError: cannot import name 'db'。那么,构建 API 以从数据库中引入数据的最佳方式是什么?
结构
myapi
run.py
api
__init__.py
resources
__init__.py
user.py
myapi/run.py
from api import app
app.run()
myapi/__init__.py
from flask import Flask
from flask.ext.restful import Api
from flask.ext.sqlalchemy import SQLAlchemy
from api.resources.user import User
app = Flask(__name__)
app.debug = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/myapi'
api = Api(app)
db = SQLAlchemy(app)
api.add_resource(User, '/user')
../resources/user.py
from flask.ext.restful import Resource
from api import db
class User(Resource, db.Model):
def get(self):
return {'class': 'user', 'first': 'john', 'last': 'doe'}
【问题讨论】:
-
api中有什么?向我们展示。
-
@RobertMoskal 哦,那是一个文件夹
-
您的数据库位于
__init__,但您从api中的user.py导入它 -
是的,就像corvid所说,你的问题来自user.py中的api,应该来自app import db
标签: flask flask-sqlalchemy flask-restful