{ "info": { "author": "Mikhail Trifonov", "author_email": "mikhail.trifonov@corp.mail.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta" ], "description": "============\r\nInstallation\r\n============\r\n\r\n::\r\n\r\n pip install noseapp_alchemy\r\n\r\n\r\nInstall extension from app\r\n--------------------------\r\n\r\nconfig module ::\r\n\r\n from noseapp.ext.alchemy.mysql_ex import make_config\r\n\r\n MY_DB = make_config()\r\n\r\n MY_DB.configure(\r\n host='127.0.0.1',\r\n port=3306,\r\n user='root',\r\n password='',\r\n db='target',\r\n protocol='mysql',\r\n # pool_size=POOL_SIZE,\r\n # pool_class=POOL_CLASS,\r\n # strategy=ENGINE_STRATEGY,\r\n # max_overflow=MAX_OVERFLOW,\r\n # bind_key=DB_BIND_KEY,\r\n )\r\n\r\n ALCHEMY_EX_MYSQL = (\r\n MY_DB,\r\n )\r\n\r\n ALCHEMY_EX_SESSION = {}\r\n\r\n etc...\r\n\r\n\r\napp module ::\r\n\r\n from noseapp import NoseApp\r\n from noseapp.ext.alchemy import MySQLEx\r\n\r\n\r\n class MyApp(NoseApp):\r\n\r\n def initialize(self):\r\n MySQLEx.install(self)\r\n\r\n\r\nsuite ::\r\n\r\n from noseapp import Suite\r\n from noseapp import TestCase\r\n\r\n\r\n suite = Suite(__name__, require=['mysql'])\r\n\r\n\r\n class MyTestCase(TestCase):\r\n\r\n def setUp(self):\r\n self.db = self.mysql.get_client()\r\n # get by bind key\r\n self.db = self.mysql.get_client('bind key')\r\n\r\n def test(self):\r\n with self.db.read() as execute:\r\n result = execute('SELECT 1').fetchone()\r\n self.assertTrue(result)\r\n\r\n\r\nUsage ORM\r\n---------\r\n\r\n::\r\n\r\n from sqlalchemy import Column\r\n from sqlalchemy import String\r\n from sqlalchemy import Integer\r\n\r\n from noseapp.ext.alchemy.orm import BaseModel\r\n\r\n\r\n class MyModel(BaseModel):\r\n class Meta:\r\n # bind = 'bind key from db settings'\r\n table = 'table name'\r\n\r\n id = Column(Integer, autoincrement=True, nullable=False, primary_key=True)\r\n name = Column(String(255), nullable=False, default='Name')\r\n\r\n\r\nCreate new object\r\n-----------------\r\n\r\n::\r\n\r\n obj = MyModel.create(name='Hello World!')\r\n\r\n\r\nUpdate object\r\n-------------\r\n\r\n::\r\n\r\n obj = MyModel.objects.get(1)\r\n obj.update(name='Hello!')\r\n\r\n\r\nGet objects by\r\n--------------\r\n\r\n::\r\n\r\n objects = MyModel.objects.getlist_by(name='Hello')\r\n obj = MyModel.objects.get_by(name='Hello')\r\n\r\n\r\nEtc...See orm module...", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/trifonovmixail/noseapp_alchemy", "keywords": "", "license": "UNKNOWN", "maintainer": "", "maintainer_email": "", "name": "noseapp_alchemy", "package_url": "https://pypi.org/project/noseapp_alchemy/", "platform": "any", "project_url": "https://pypi.org/project/noseapp_alchemy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/trifonovmixail/noseapp_alchemy" }, "release_url": "https://pypi.org/project/noseapp_alchemy/1.0.0/", "requires_dist": null, "requires_python": null, "summary": "SqlAlchemy extension for noseapp lib", "version": "1.0.0" }, "last_serial": 1568244, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "3f93671bdc2f633f7216cf294ef90bd6", "sha256": "0afd857bddb558249cb81599efad0b6570e9f2c9dc75ab652c58abfccd78f57b" }, "downloads": -1, "filename": "noseapp_alchemy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3f93671bdc2f633f7216cf294ef90bd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4272, "upload_time": "2015-04-16T15:10:59", "url": "https://files.pythonhosted.org/packages/7d/49/da600907c685890bb9f5407b82e856a29a10cabcc5c1a9526b98797dab3e/noseapp_alchemy-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3f93671bdc2f633f7216cf294ef90bd6", "sha256": "0afd857bddb558249cb81599efad0b6570e9f2c9dc75ab652c58abfccd78f57b" }, "downloads": -1, "filename": "noseapp_alchemy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3f93671bdc2f633f7216cf294ef90bd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4272, "upload_time": "2015-04-16T15:10:59", "url": "https://files.pythonhosted.org/packages/7d/49/da600907c685890bb9f5407b82e856a29a10cabcc5c1a9526b98797dab3e/noseapp_alchemy-1.0.0.tar.gz" } ] }