gpt4 book ai didi

flask - 使用 SQLAlchemy 构建 Flask-Restful API

转载 作者:行者123 更新时间:2023-12-03 16:05:42 27 4
gpt4 key购买 nike

所以我正在尝试使用 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'}

最佳答案

将您的资源/模型导入移动到您分配 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')

关于flask - 使用 SQLAlchemy 构建 Flask-Restful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28999931/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com