推荐学习书目
› 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 · Oct 7, 2018 · 2047 views
    This topic created in 2914 days ago, the information mentioned may be changed or developed.

    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
    
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2903 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:30 · PVG 21:30 · LAX 06:30 · JFK 09:30
    ♥ Do have faith in what you're doing.