构建 Flask-Restful API 以使用 SQLAlchemy

2023-12-02

因此,我尝试使用 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(使用前将#替换为@)

构建 Flask-Restful API 以使用 SQLAlchemy 的相关文章

随机推荐

  • 应用程序自动构建版本控制

    每次编译 Go 应用程序时是否可以自动增加次版本号 我想在我的程序中设置一个版本号 并带有自动增量部分 myapp version MyApp version 0 5 132 0 5 是我设置的版本号 132 是每次编译二进制文件时自动递增
  • .prepend 不是函数

    请考虑以下示例代码
  • 如何在对话框中创建编辑文本框

    我正在尝试在对话框中创建一个编辑文本框以输入密码 当我做的时候我却做不到 我是这方面的初学者 请帮助我 public class MainActivity extends Activity Button create show settin
  • 如何修复我的第一个 Hibernate 项目的错误?

    我一直在尝试制作我的第一个 Hibernate 项目 我在我的项目中添加了以下库 antlr 2 7 7 公共集合 3 2 1 dom4j 1 6 1 hibernate commons annotations 4 0 1 Final hi
  • 在回调函数中使用 ExtAudioFileWriteAsync()。无法运行

    只是在核心音频方面似乎无法走得太远 我的目标是将仪器单元捕获的音频数据写入文件 我已经在仪器单元上设置了对回调函数的调用 CheckError AudioUnitAddRenderNotify player gt instrumentUni
  • 傻瓜类型系列

    有人可以给出一个超级简单 几行 的例子来基本了解什么类型的族可以用于什么以及它们是什么 2 2类型族的例子 这是一个例子 Language TypeFamilies DataKinds KindSignatures GADTs Undeci
  • 为什么 Scala 编译器会失败并显示“无法在包 org.apache.spark 中访问包 Spark 中的对象 SparkConf”?

    我无法访问SparkConf在包裹中 但我已经导入了import org apache spark SparkConf 我的代码是 import org apache spark SparkContext import org apache
  • 使用指针简单修改C字符串

    我有两个指向同一个 C 字符串的指针 如果我将第二个指针加一 并将第二个指针的值分配给第一个指针的值 我希望第一个字符串的第一个字符被更改 例如 include stdio h int main char original str ABC
  • Django 迁移——是否可以在项目中使用 South?

    我已经开始了一个项目 所有模型都已同步 是的 我想现在还不算太晚 我在一个项目进行期间搬到了南方 我对这个选择很满意 我认为这对部署有很大帮助 South应用程序的初始化可以随时完成
  • 错误响应:[13] 创建 Google Cloud Storage 存储桶时发生内部错误

    我正在努力推动Nodejs示例应用程序Hello World但推动后我收到错误 错误 gcloud app deploy 错误响应 13 内部错误 创建 Google Cloud Storage 存储桶时发生 代码没有任何问题 因为它只是从
  • 使用Puppeteer,如何获取Chrome DevTools的“网络”选项卡的计时信息?

    下面是我访问的截图https www ted com并检查 Google Chrome DevTools 的 网络 选项卡 并查看根请求和子请求的计时数据 如何使用 Puppeteer 以编程方式获取上述所有计时数据 理想情况下 它看起来像
  • 在 Java FX 中将 TextField 输入限制为十六进制值

    如何将用户的输入限制为仅十六进制值 使用十进制表示法时 范围是从 0 到 16383 但我想让用户输入一个十六进制数TextField 因此范围应该是从0x0000 to 0x3FFF 我已经通过以下方式构建了我的 GUISceneBuil
  • Spring Data Rest - 在 _embedded 中包含嵌套资源

    我正在为购物清单开发一个 Spring Boot 应用程序 为此 我使用 Spring Data Rest 通过 REST API 导出我的实体 我的架构看起来像这样 我有一个购物项目 public class ShoppingItem I
  • 语法错误:使用 Bash 时需要操作数

    我有两个想要循环的数组 我正确地构造了它们 在进入 for 循环之前 我确实回显它们以确保数组一切正常 但是当我运行脚本时 它输出一个错误 l lt syntax error operand expected error token is
  • XML 表到 LaTeX

    假设我有一个以下形式的 XML 表 table tr td First Name td td Bill Gates td tr tr td Telephone td td 555 77 854 td tr tr td 555 77 855
  • 来自 ASP.Net 服务器的推送通知

    我有一个执行一些操作的网络服务 当事件发生时 我会通知客户 我遇到的问题是我能够从客户端连接到服务器 但反之则不行 因为客户端恰好位于 NAT 路由器 后面 目前 我每分钟都会发出请求以检查通知 如果我能有一种技术可以更快地通知客户 而不必
  • 蓝牙 BLE 服务在 onCharacteristicRead 处返回状态 = 10

    我尝试从我连接的设备读取一些配置 但在回调中 onCharacteristicRead 参数 status 10 我注意到 status 0 表示 BluetoothGatt GATT SUCCESS 10 代表什么 我的代码如下 publ
  • HTML:使用innerHTML绘制表格

    document getElementById outputDiv innerHTML document getElementById outputDiv innerHTML table border 1 width 100 tr for
  • Cobertura 不适用于 Java 7

    我使用的是maven 3 0 4 JRE 1 7 0 09 当我使用mvn clean install我所有的测试都通过了 一切看起来都很好 这是我的 Surefire 插件配置
  • 构建 Flask-Restful API 以使用 SQLAlchemy

    因此 我尝试使用 Flask Restful 制作一个 API 但我找到的所有示例都将所有内容放入一个 app py 文件中 我在中找到了信息Flask Restful 文档解释如何构建 API 但不包含任何使用数据库的内容 我已经发布了我