跳转到主要内容

服务器端代码,用于向flask-restless客户端公开数据模型

项目描述

Build Status Codecov PyPI version

目的

这个库是两段代码中的一段。它实现了flask-restless客户端的服务器部分。它所做的就是允许您以方便的JSON格式呈现您的数据模型。然后,flask-restless-client读取此JSON格式,反过来使用它来构建自身,允许通过HTTP透明访问数据模型。

快速入门

启用此功能就像在flask-restless中注册SQLAlchemy模型一样简单。您需要做的只是从库中导入DataModel类,并使用它来注册您的API。

import flask
import flask_restless
from flask_sqlalchemy import SQLAlchemy
from flask_restless_datamodel import DataModel
from my_models import Person, Computer, db

app = flask.Flask(__name__)
db = SQLAlchemy(app)

# Create a datamodel instance to register later
data_model = DataModel(manager)

manager = flask_restless.APIManager(app, flask_sqlalchemy_db=db)
manager.create_api(Person, methods=['GET'], include_columns=['name'])
manager.create_api(Computer, methods=['GET'], collection_name='compjutahs', exclude_columns=['name'])
manager.create_api(data_model, methods=['GET'])
# In case you want to expose the methods and properties as well
data_model.register_rpc_blueprint()

这将公开一个端点 https://:5000/flask-restless-datamodel,它将产生以下结果

{
   "Computer":{
      "attributes":{
         "id":"integer",
         "owner_id":"integer",
         "owner_name":"unicode",
         "purchase_time":"datetime",
         "vendor":"unicode"
      },
      "collection_name":"compjutahs",
      "methods":{},
      "pk_name":"id",
      "relations":{
         "owner":{
            "backref":"computers",
            "foreign_model":"Person",
            "local_column":"owner_id",
            "relation_type":"MANYTOONE"
         },
         "peers":{
            "foreign_model":"Computer",
            "is_proxy":true,
            "relation_type":"MANYTOONE"
         }
      }
   },
   "Person":{
      "attributes":{
         "name":"unicode"
      },
      "collection_name":"person",
      "methods":{},
      "pk_name":"id",
      "relations":{

      }
   }
}

此结果将用于客户端代码动态构建模型。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

flask-restless-datamodel-0.3.0.tar.gz (16.2 kB 查看哈希值)

上传时间 源代码

构建分发

flask_restless_datamodel-0.3.0-py2.py3-none-any.whl (12.9 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下提供支持