V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
prasanta
V2EX  ›  Python

JSON-ORM 规范.

  •  
  •   prasanta · 2018-10-07 15:02:32 +08:00 · 1564 次点击
    这是一个创建于 2244 天前的主题,其中的信息可能已经有所发展或是发生改变。

    JSON-ORM 规范.

    语言无关的 ORM 规范

    定义数据库结构

    {
        "blog": {
            "type": "Schema",
            "title": {
                "type": "String",
                "max_length": [
                    256,
                    "Too long"
                ],
                "trim": true,
                "required": true
            },
            "author": "String",
            "body": "String",
            "comments": [
                {
                    "type": "Schema",
                    "author": "String",
                    "body": "String",
                    "date": "Timestamp"
                }
            ],
            "hidden": "Boolean",
            "meta": {
                "type": "Inline",
                "votes": "Number",
                "fav": "Number"
            }
        }
    }
    

    用法(Python 案例)

    orm = ORM(db="mysql://127.0.0.1/blog", schema=["schema.json"])
    orm["blog"].check(
        {
            "title": "title",
            "author": "tom",
            "body": "blog content"
        }
    )
    orm["blog"].create([
        {
            "title": "title",
            "author": "tom",
            "body": "blog content"
        },    
        {
            "title": "title2",
            "author": "tom",
            "body": "blog content"
        }
    ])
    
    queryset = orm["blog"].find().order().limit().offset().all()
    queryset.count()
    queryset.group().count()
    queryset.aggregate()
    queryset.update({})
    queryset.delete()
    
    instance = orm["blog"].find().first()
    instance.update({})
    instance.delete()
    

    数据类型

    String
    Number
    Timestamp
    Date
    DateTime
    Schema
    Inline
    Boolean
    Json
    Binary
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1080 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 19:45 · PVG 03:45 · LAX 11:45 · JFK 14:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.