8

一个很基础的问题。我有一个 FLASK 应用程序,它背后有 postgresql。此应用程序没有 ORM。所有请求都通过 SQL psycopg2 接口完成。

现在我想从这个应用程序中公开某些 API。最好的方法是什么。

1> 就像: http: //flask-peewee.readthedocs.org/en/latest/rest-api.html 2> 或者我可以在没有 ORM 的情况下做一个。似乎 RESTful API 的 ORM 非常有用,但在这种情况下,我必须有一个单独的数据库元素并将数据从 postgres 模型复制到 ORM。

欢迎提出任何建议。

4

5 回答 5

7

我有类似的设置 Flask + Postgres 和 PsycoPG2。我按照以下教程设计和实现 API 我手动处理错误并使用适当的 HTTP 代码进行响应

http://blog.luisrei.com/articles/rest.html { 设计 API}

http://blog.luisrei.com/articles/flaskrest.html { 实施 API}

于 2013-05-03T18:17:31.547 回答
3

看起来Flask-Restless是一个更好的选择。使用它进行验证、身份验证支持要简单得多。

于 2013-10-21T12:20:54.770 回答
3

对于非平凡的应用程序,最好使用flask-classy。Flask-Restless 有一定的限制,除了更复杂之外,Flask-restful 并没有真正超越 Flask-classy。在转向烧瓶优雅之前,我个人使用了烧瓶不安的一段时间。

于 2014-05-30T05:11:44.907 回答
2

现在烧瓶顶部有很多不同的框架。

于 2014-04-18T15:15:07.927 回答
0

FLASK 和 Postman 应用程序中的 REST API:

代码:

from flask_sqlalchemy import SQLAlchemy
from flask import Flask,render_template,request,jsonify,json
import psycopg2
import psycopg2.extras


app = Flask(__name__)
db = SQLAlchemy()

conn = psycopg2.connect("postgresql://postgres:postgres@localhost:5432/country")
cr = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
    

@app.route('/', methods=['GET'])
def test():

    return jsonify({
        'message': 'Welcome'
    })


@app.errorhandler(404)
def page_not_found(e):
    return "<h1>404</h1><p>The resource could not be found.</p>", 404


##### Countries ######
@app.route('/country/all', methods=['GET'])
def country():

   cr.execute('select * from country')
   country = cr.fetchall()
   countries = []
   for row in country:
       countries.append(dict(row))
   return jsonify(countries)

if __name__ == '__main__':
    app.run(debug=True, port=8080)

结果:

在此处输入图像描述**

于 2019-04-26T07:17:19.523 回答