{ "info": { "author": "Max Kim", "author_email": "kim.b2f@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Simple SQLite ORM - 'sORM'\n\nAllows to use Python objects instead of SQLite statements.\n\n## Installation\n\nYou can install 'sORM' with these commands:\n```bash\n $ mkdir \n $ cd /\n $ git clone git://github.com/max-kim/sorm.git\n $ cd sorm\n```\n\n## Requirements\n\n- Python 3.6 (or over)\n\n## Usage\n\n#### How to make the connection and create the tables:\n```python\n from sorm import create_connection\n from sorm import IntType, FloatType, StrType, BytesType, ForeignKey, Base, Relationship\n from sorm import Base, ForeignKey, Relationship\n\n connection = create_connection('sorm_test.db', echo=True)\n\n\n class Group(Base):\n __tablename__ = 'groups'\n\n id = IntType(__tablename__, 'id', primary_key=True)\n group_name = StrType(__tablename__, 'group_name', nullable=False)\n\n\n class User(Base):\n __tablename__ = 'users'\n\n id = IntType(__tablename__, 'id', primary_key=True)\n user_name = StrType(__tablename__, 'user_name', nullable=False)\n group_id = IntType(__tablename__, 'group_id', ForeignKey(Group, 'id'))\n\n group = Relationship(group_id)\n\n connection = create_connection('sorm_test.db', echo=True)\n connection.create_table(Group, User)\n\n # Also you can use next syntax to create table:\n # <<< Group.create(connection)\n```\n**Important:** For the best way, use 'id' attribute as primary key within your every tables.\n\nUse 'echo=True' as 'create_connection' parameter to show every sql queries.\n\n#### How to insert data:\n```python\n group = Group(group_name='Admins')\n connection.add(group)\n connection.add(Group(**{'group_name': 'Users'}))\n\n connection.add(User(**{'user_name': 'Max', 'group_id': None}))\n connection.add(User(**{'user_name': 'Alex', 'group_id': None}))\n```\nThe field 'id' will be added and filled automatically.\n\n#### How to select data:\n```python\n groups = connection.query(Group).order_by(Group.id).all()\n```\nThe result returns as tuple of objects:\n```python\n print(type(group)) # >>> \n for group in groups:\n print('The group id = {}, group name is {}.'.format(group.id, group.group_name))\n```\n\nWhen you call 'first()' method, you get an object or 'None' if the query does not match any data.\n```python\n admin_group = connection.query(Group).where((Group.group_name, '=', 'Admins')).first()\n```\n\n#### How to make an update:\n```python\n if admin_group:\n user = connection.update(User).where((User.user_name, '=', 'Alex'),\n (User.id, '=', 2)).value(group_id=admin_group.id)\n print(user)\n```\nUpdate query returns tuple of objects any time or empty tuple if conditions does not fit anything.\n\n#### Deletion the data:\n```python\n connection.delete(Group).where((Group.id, '>=', 3))\n```\nor:\n```python\n some_user = User(id=5)\n connection.delete(some_user)\n\n # connection.delete(some_user) == connection.delete(User).where((User.id, '=', 5))\n```\nThe deletion statement returns 'None' any time.\n\n## Other\n\nThis library is a homewokr for OTUS Python web-dev.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/max-kim/sorm", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "sorm", "package_url": "https://pypi.org/project/sorm/", "platform": "", "project_url": "https://pypi.org/project/sorm/", "project_urls": { "Homepage": "https://github.com/max-kim/sorm" }, "release_url": "https://pypi.org/project/sorm/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "Simple SQLite3 ORM", "version": "0.0.1" }, "last_serial": 4258344, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "234be978585faae183acd84ef7b0b5b9", "sha256": "1e3ed5e46c5b3ce03ca2eedc9ac7fe886026774d2aac140835da05d3e2beef89" }, "downloads": -1, "filename": "sorm-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "234be978585faae183acd84ef7b0b5b9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10479, "upload_time": "2018-09-10T16:36:05", "url": "https://files.pythonhosted.org/packages/dd/e8/4852947d967fdaf11dc61a1a652c7f947572c2d2b2c7e99d76dfa3d2e646/sorm-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e527e901af2bf9e0dc0303a9b9bd98a8", "sha256": "7f060fa7af42e4c3e1b724dbf6defdc8ff8e8a25f059f74ac56a1f900ef6749c" }, "downloads": -1, "filename": "sorm-0.0.1.tar.gz", "has_sig": false, "md5_digest": "e527e901af2bf9e0dc0303a9b9bd98a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8718, "upload_time": "2018-09-10T16:36:06", "url": "https://files.pythonhosted.org/packages/ca/98/435f733369d4a6d22b40292f6497e459ff68c0d1973c0c74520b7a571574/sorm-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "234be978585faae183acd84ef7b0b5b9", "sha256": "1e3ed5e46c5b3ce03ca2eedc9ac7fe886026774d2aac140835da05d3e2beef89" }, "downloads": -1, "filename": "sorm-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "234be978585faae183acd84ef7b0b5b9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10479, "upload_time": "2018-09-10T16:36:05", "url": "https://files.pythonhosted.org/packages/dd/e8/4852947d967fdaf11dc61a1a652c7f947572c2d2b2c7e99d76dfa3d2e646/sorm-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e527e901af2bf9e0dc0303a9b9bd98a8", "sha256": "7f060fa7af42e4c3e1b724dbf6defdc8ff8e8a25f059f74ac56a1f900ef6749c" }, "downloads": -1, "filename": "sorm-0.0.1.tar.gz", "has_sig": false, "md5_digest": "e527e901af2bf9e0dc0303a9b9bd98a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8718, "upload_time": "2018-09-10T16:36:06", "url": "https://files.pythonhosted.org/packages/ca/98/435f733369d4a6d22b40292f6497e459ff68c0d1973c0c74520b7a571574/sorm-0.0.1.tar.gz" } ] }