因此,我尝试使用 Flask-Restful 制作一个 API,但我找到的所有示例都将所有内容放入一个 app.py 文件中。我在中找到了信息Flask-Restful 文档解释如何构建 API,但不包含任何使用数据库的内容。我已经发布了我的想法,如果我对一些数据进行硬编码,它就会起作用,但是当我导入db
into 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')
../资源/用户.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'}
将您的资源/模型导入移至您分配的位置下方db
变量(因为这些模块/脚本依赖于已经实例化的数据库):
myapi/api/__init__.py
from flask import Flask
from flask.ext.restful import Api
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.debug = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/myapi'
api = Api(app)
db = SQLAlchemy(app)
from api.resources.user import User
api.add_resource(User, '/user')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)