{ "info": { "author": "Memory_Leak", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "## ugly-sql\n\n### \u57fa\u7840\u4f7f\u7528\n\n\u6570\u636e\u5e93\u8fde\u63a5\u5de5\u5177:\n```python\nimport pymysql\nfrom ugly_sql import SessionManager\nimport logging\nimport sys\nimport contextlib\n\n@contextlib.contextmanager\ndef db_ctx(cfg,tran=False):\n conn=pymysql.connect(**cfg)\n sm=SessionManager(conn)\n try:\n if tran:\n sm.begin()\n yield sm.__enter__()\n sm.__exit__(None,None,None)\n except Exception as e:\n logging.warning(\"db_ctx error %s\",e)\n et,ev,tb=sys.exc_info()\n sm.__exit__(et,ev,tb)\n raise e\n finally:\n conn.close()\n\n```\n\u57fa\u7840\u64cd\u4f5c:\n\n```python\nfrom ugly_sql import Table\nUser = Table(\"users\",(\"id\",\"name\",\"password\"),\"id\",True)\ndb_cfg={}\nif __name__ == '__main__':\n with db_ctx(db_cfg,True) as db:\n user=db.query(User).filter(User.name==\"root\",User.password==\"***\").one()\n print(\"name= {}\\n password= {}\".format(user.name,user.password))\n```\n\n### \u6269\u5c55\u5de5\u5177\n\n#### DBConsole[\u7b80\u5355\u6570\u636e\u5e93\u64cd\u4f5c\u5de5\u5177(SQL\u65b9\u5f0f)]\n\n* ugly_sql.ex.DBConsole(self, connect, args=(), kwargs=None, conn_retry=3)\n\n \u200b\tconnect: \u521b\u5efa\u6570\u636e\u5e93\u8fde\u63a5\u7684\u51fd\u6570\n\n \u200b args: \u521b\u5efa\u6570\u636e\u5e93\u8fde\u63a5\u7684\u53c2\u6570\n\n \u200b\tkwargs: \u521b\u5efa\u6570\u636e\u5e93\u8fde\u63a5\u7684\u547d\u540d\u53c2\u6570\n\n \u200b\tconn_retry: \u521b\u5efa\u8fde\u63a5\u5f02\u5e38\u7684\u91cd\u8bd5\u6b21\u6570\n\n```python\nimport pymysql\n\nfrom ugly_sql.ex import DBConsole\ncfg=dict(\n host='127.0.0.1', port=3306, user='***', passwd='***', charset='utf8',\n db='test'\n)\ndb = DBConsole(pymysql.connect,kwargs=cfg)\n```\n\n* simple_select(sql, cursor=None, params=(), rows=False, callback=None)\n\n sql: \u6267\u884c\u7684SQL\u8bed\u53e5\n\n params: SQL\u8bed\u53e5\u7684\u53c2\u6570\n\n rows: \u6307\u793a\u662f\u5426\u8fd4\u56de\u591a\u6761\u6570\u636e\n\n callback: \u5904\u7406\u6570\u636e\u7684\u56de\u8c03\u51fd\u6570\uff0ccallback(data,exception)\n\n ```python\n db.simple_select(\"select * from application\",callback=lambda d,e:d,rows=True)\n ```\n\n* simple_update(sql, params=(), cursor=None, commit=False, auto_id=False, catch=None)\n\n sql: \u6267\u884c\u7684SQL\u8bed\u53e5\n\n param: SQL\u8bed\u53e5\u7684\u53c2\u6570\n\n commit: \u662f\u5426commit\n\n auto_id:\u81ea\u52a8\u751f\u6210\u7684ID\uff0cauto_id\u4e3aTrue\u5219\u8fd4\u56deID\u503c\n\n catch: \u53d1\u751f\u5f02\u5e38\u65f6\u7684\u56de\u8c03catch(exception),\u672a\u6307\u5b9a\u5219\u629b\u51fa\u5f02\u5e38\n\n```json\ndb.simple_update(\"update application set enable=1 where id=%s\", params=1, catch=lambda e: print(e))\n```\n\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": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "ugly-sql", "package_url": "https://pypi.org/project/ugly-sql/", "platform": null, "project_url": "https://pypi.org/project/ugly-sql/", "project_urls": null, "release_url": "https://pypi.org/project/ugly-sql/0.0.13/", "requires_dist": null, "requires_python": "", "summary": "ugly-sql \u6570\u636e\u5e93\u5de5\u5177", "version": "0.0.13", "yanked": false, "yanked_reason": null }, "last_serial": 13826894, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3c6cc0af030f9730802fd136e49a9f3b", "sha256": "1ecc5d9de81f90c4bafbef0e4995c045c35f3ce33a06ed8a428737ffaa61cd71" }, "downloads": -1, "filename": "ugly_sql-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3c6cc0af030f9730802fd136e49a9f3b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7987, "upload_time": "2018-10-28T04:06:22", "upload_time_iso_8601": "2018-10-28T04:06:22.715789Z", "url": "https://files.pythonhosted.org/packages/0f/a6/8977bd1c507af4332ce24aa09a0f9d1472184b20753cdabcc348d723ac70/ugly_sql-0.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "394e0c6b8f21fa46c7f4a6b4e7b48626", "sha256": "2a88ae4eb847662a91d912c7d69dea3ee2e44349bc6b63c1f9e00f6681c37554" }, "downloads": -1, "filename": "ugly_sql-0.0.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "394e0c6b8f21fa46c7f4a6b4e7b48626", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10695, "upload_time": "2022-04-07T07:46:21", "upload_time_iso_8601": "2022-04-07T07:46:21.803501Z", "url": "https://files.pythonhosted.org/packages/e2/19/2706e9d9c8858a3a28bf0ddf265893a3565e0e36170e7645191d0b775273/ugly_sql-0.0.12-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "21d21f40545992ef367764dd59b53448", "sha256": "07650430f1a6d55386d271a1b7b450937490dcb333b3f6b48c9231f123f76dd0" }, "downloads": -1, "filename": "ugly_sql-0.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "21d21f40545992ef367764dd59b53448", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10713, "upload_time": "2022-05-16T07:47:02", "upload_time_iso_8601": "2022-05-16T07:47:02.225738Z", "url": "https://files.pythonhosted.org/packages/c5/4b/4d08195e7fdf2ebf7fb8a5cd73f9ad0fc240e2a3148a17a543e6bd94232a/ugly_sql-0.0.13-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "e4d15b741871a9b5616d15334ef32463", "sha256": "42e72f3d102097418e7d9a46945d1fbe5acd68499dd9fe5f56c72ba08c4ba5fd" }, "downloads": -1, "filename": "ugly_sql-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e4d15b741871a9b5616d15334ef32463", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8445, "upload_time": "2018-10-28T04:09:06", "upload_time_iso_8601": "2018-10-28T04:09:06.354911Z", "url": "https://files.pythonhosted.org/packages/57/36/4d4e34306ae5f897075dcfd8112b1dba37cc634acb0162ef195d5dcc8584/ugly_sql-0.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1b339c6cc0e7819078ffdbe6c90a745f", "sha256": "72679df10245f9028089cd998f9c5fa30a027b13796ddcbf2972ecf74cc6735b" }, "downloads": -1, "filename": "ugly_sql-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1b339c6cc0e7819078ffdbe6c90a745f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8356, "upload_time": "2019-10-17T08:36:33", "upload_time_iso_8601": "2019-10-17T08:36:33.650776Z", "url": "https://files.pythonhosted.org/packages/1d/08/556fe2b808b6a074e062fa85ab1d1c4c6a9c470febb6fc110526fbf4c42b/ugly_sql-0.0.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7ea8c8a9a9daaf4d40643c68b70e5cde", "sha256": "cb336e42e7700ccec9d42128a9158c0aa7aa5d254ca0053c6ace1bc0587a7a70" }, "downloads": -1, "filename": "ugly_sql-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7ea8c8a9a9daaf4d40643c68b70e5cde", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9778, "upload_time": "2019-10-21T10:08:03", "upload_time_iso_8601": "2019-10-21T10:08:03.552145Z", "url": "https://files.pythonhosted.org/packages/8e/e5/ea522e0942f355ea11f54672d694a626a42e7b1b57e00b8ce6b74197f3a0/ugly_sql-0.0.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "a8e0aa32e3d99bf1dc4747ab14c9ecf5", "sha256": "7cb3edd3247676e1caacbe8524046e06c0a4288e76a701dd339e60b06887506b" }, "downloads": -1, "filename": "ugly_sql-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a8e0aa32e3d99bf1dc4747ab14c9ecf5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10393, "upload_time": "2019-10-21T10:42:16", "upload_time_iso_8601": "2019-10-21T10:42:16.028890Z", "url": "https://files.pythonhosted.org/packages/c2/c4/53c6c27802136a6b07eebc742f42d1c5f13912b8411f1299498d56955a14/ugly_sql-0.0.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "25c64085e66d6fb5db7ebc1f391cc94a", "sha256": "4d8d464d44c648f1b90c97c1e7e58ce66343b9d1faa1c8950c07740840b82654" }, "downloads": -1, "filename": "ugly_sql-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "25c64085e66d6fb5db7ebc1f391cc94a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10477, "upload_time": "2019-11-18T06:58:14", "upload_time_iso_8601": "2019-11-18T06:58:14.624421Z", "url": "https://files.pythonhosted.org/packages/76/4a/ef884c6282786cc6d6dd7fab94fdb485d0849c32bc7cf7f06140490013cb/ugly_sql-0.0.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "de3fd7ae9f844f15cc424b76f2672f0a", "sha256": "ae519e1b943a96010719f075097508dd042c0ed45a29d703df93b7816cc85a3b" }, "downloads": -1, "filename": "ugly_sql-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de3fd7ae9f844f15cc424b76f2672f0a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10500, "upload_time": "2019-11-20T09:53:44", "upload_time_iso_8601": "2019-11-20T09:53:44.229413Z", "url": "https://files.pythonhosted.org/packages/0c/f8/691ca792bfea95e95a891bd496c04afc4882ffd9095545d4265c9669b6d1/ugly_sql-0.0.7-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "a037fab5f8b1774310442042b1f63eef", "sha256": "2cdf4fd73cbb044f0d87d5fefdf02a37b0143cff7da7daa591070f849f434e79" }, "downloads": -1, "filename": "ugly_sql-0.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a037fab5f8b1774310442042b1f63eef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10664, "upload_time": "2019-12-10T13:53:24", "upload_time_iso_8601": "2019-12-10T13:53:24.475275Z", "url": "https://files.pythonhosted.org/packages/73/7f/5eb84b803f3af84c38f7702a45aba2f88caa2fd8665d2e2133526d41eb06/ugly_sql-0.0.8-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "db07a9f276e1c4bfaf37f058af1b9015", "sha256": "280adddce117c7a5f805eebcc54440cfb64f71d0fb2e2c61dd0ef4df026a8b26" }, "downloads": -1, "filename": "ugly_sql-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db07a9f276e1c4bfaf37f058af1b9015", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10668, "upload_time": "2019-12-11T14:01:51", "upload_time_iso_8601": "2019-12-11T14:01:51.533645Z", "url": "https://files.pythonhosted.org/packages/08/d8/0e9dc6577d663ca05f6c1cd184f18b26c2033ebc60746cfc7e802769429e/ugly_sql-0.0.9-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "21d21f40545992ef367764dd59b53448", "sha256": "07650430f1a6d55386d271a1b7b450937490dcb333b3f6b48c9231f123f76dd0" }, "downloads": -1, "filename": "ugly_sql-0.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "21d21f40545992ef367764dd59b53448", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10713, "upload_time": "2022-05-16T07:47:02", "upload_time_iso_8601": "2022-05-16T07:47:02.225738Z", "url": "https://files.pythonhosted.org/packages/c5/4b/4d08195e7fdf2ebf7fb8a5cd73f9ad0fc240e2a3148a17a543e6bd94232a/ugly_sql-0.0.13-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }