{ "info": { "author": "Hsiaoming Yang", "author_email": "lepture@me.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Database :: Front-Ends", "Topic :: Software Development :: Libraries" ], "description": "Vino\n=======\n\nVINO Is Not ORM. Yes, it's true, it's not ORM.\n\n\nGet Started\n------------\n\nA quick view with Vino::\n\n # setup\n # db = Vino('engine://user:passwd@host:port/database')\n db = Vino('sqlite://db.sqlite')\n\n # query\n db.table('user').find(username='lepture').fetch()\n\n # create\n db.table('user').create(username='lepture', website='http://lepture.com')\n db.commit()\n\n # update\n db.table('user').find(username='lepture').update(username='Hsiaoming Yang')\n db.commit()\n\n # delete\n db.table('user').find(username='lepture').delete()\n db.commit()\n\n\nSetup\n------\n\nWe will only support sqlite3 and mysql by now.\n\nSQLite\n~~~~~~~\n\nSQLite with relative path::\n\n db = Vino('sqlite://relative/path/db.sqlite')\n\nSQLite with absolute path::\n\n db = Vino('sqlite:///root/path/db.sqlite')\n\n**Please note, it's different from SQLAlchemy**.\n\nMySQL\n~~~~~~~\n\nMySQL with all information::\n\n db = Vino('mysql://lepture:123456@localhost:3306/test')\n\nMySQL with less information::\n\n db = Vino('mysql://lepture@localhost/test')\n\nDefault port is 3306.\n\n**Please note, it's utf8 by default**.\n\n\nQuery\n------\n\nFind all data::\n\n db.table('user').fetch()\n\nFind all specified data::\n\n db.table('user').find(username='lepture').fetch()\n\nFind the first data::\n\n # fetch 1 will not return a list\n db.table('user').find(username='lepture').fetch(1)\n\nLimit on query::\n\n db.table('user').find(username='lepture').fetch(5, offset=3)\n\nMultiple filters::\n\n db.table('user').find(username='lepture', age=20).fetch()\n\nAdvanced filters::\n\n # just like Django\n\n db.table('user').find(age__in=[20, 22]).fetch()\n db.table('user').find(age__gt=20).fetch()\n db.table('user').find(age__lt=20).fetch()\n db.table('user').find(age__gte=20).fetch()\n db.table('user').find(age__lte=20).fetch()\n\n # more see documentation\n\nMore Advanced filters::\n\n db.table('user').find(age__ne=20).fetch() # not equal\n db.table('user').find(age__nin=[20, 22]).fetch() # not in\n\n # more see documentation\n\nQuery order::\n\n db.table('user').find(age=20).order('-id').fetch()\n\n\nCreate\n-------\n\n\nUpdate\n-------\n\n\nDelete\n---------\n\nDelete all data::\n\n db.table('user').delete()\n db.commit()\n\nDelete specified data::\n\n db.table('user').find(username='lepture').delete()\n db.commit()\n\n\nFAQ\n-----\n\n1. How do I join tables?\n\n Vino provides clean and simple API, you should join tables yourself\n with ``db.raw``", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": null, "license": "BSD License", "maintainer": null, "maintainer_email": null, "name": "vino", "package_url": "https://pypi.org/project/vino/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/vino/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/vino/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Vino Is Not ORM", "version": "0.1.0" }, "last_serial": 449046, "releases": { "0.1.0": [] }, "urls": [] }