{ "info": { "author": "chenhengqi", "author_email": "ritchiechen@tencent.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Build Tools" ], "description": "![](https://github.com/serverlessplus/py/raw/master/serverless%2B.png)\n\n# Serverless + Python\n\n## \u7b80\u4ecb\n\n`serverlessplus` \u662f\u4e00\u4e2a\u7b80\u5355\u6613\u7528\u7684\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u5e2e\u52a9\u4f60\u5c06\u73b0\u6709\u7684 `django` / `flask` \u7b49\u6846\u67b6\u6784\u5efa\u7684\u5e94\u7528\u501f\u52a9 [API \u7f51\u5173](https://cloud.tencent.com/product/apigateway) \u8fc1\u79fb\u5230 [\u817e\u8baf\u4e91\u65e0\u670d\u52a1\u4e91\u51fd\u6570](https://cloud.tencent.com/product/scf)\uff08Tencent Cloud Serverless Cloud Function\uff09\u4e0a\u3002\n\n## \u5f00\u59cb\u4f7f\u7528\n\n```shell\n$ python3 -m pip install serverlessplus\n```\n\n\u5047\u8bbe\u6709\u5982\u4e0b `flask` \u5e94\u7528\uff1a\n```python\n# app.py\nfrom flask import Flask\n\napp = Flask(__name__)\n\n@app.route('/')\ndef hello():\n return 'hello world'\n```\n\n\u6dfb\u52a0 `index.py` \u4f5c\u4e3a\u670d\u52a1\u7684\u5165\u53e3\u6587\u4ef6, \u5185\u5bb9\u5982\u4e0b\uff1a\n```python\n# encoding: utf8\nfrom serverlessplus import create_environ, create_app, get_response, wrap_response\n\n# specify entrypoint, `${file_name}:${callable_object}`\nAPP = 'app:app'\napp = create_app(APP)\n\ndef main_handler(event, context):\n environ = create_environ(event, context)\n response = get_response(app, environ)\n return wrap_response(response, {'binary_mime_types': ['image/png']})\n```\n\n## \u793a\u4f8b\n\n- [flask \u793a\u4f8b](https://github.com/serverlessplus/flask-example)\n- [django \u793a\u4f8b](https://github.com/serverlessplus/django-example)\n\n## \u652f\u6301\u7684\u6846\u67b6\n\n`serverlessplus` \u88ab\u8bbe\u8ba1\u4e3a\u901a\u8fc7 `WSGI` \u4e0e\u6846\u67b6\u8fdb\u884c\u4ea4\u4e92. \u7406\u8bba\u4e0a, \u53ea\u8981\u6846\u67b6\u652f\u6301 `WSGI`, \u5c31\u53ef\u4ee5\u4f7f\u7528 `serverlessplus`\n\n## \u8def\u7ebf\u56fe\n\n- \u66f4\u591a Web \u6846\u67b6\u7684\u652f\u6301\u4e0e\u6d4b\u8bd5\n\n`serverlessplus` \u5904\u4e8e\u6d3b\u8dc3\u5f00\u53d1\u4e2d\uff0c`API` \u53ef\u80fd\u5728\u672a\u6765\u7684\u7248\u672c\u4e2d\u53d1\u751f\u53d8\u66f4\uff0c\u6211\u4eec\u5341\u5206\u6b22\u8fce\u6765\u81ea\u793e\u533a\u7684\u8d21\u732e\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7 pull request \u6216\u8005 issue \u6765\u53c2\u4e0e\u3002\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/serverlessplus/py", "keywords": "serverless,scf,tencent-cloud,wsgi,django,flask", "license": "Apache-2.0", "maintainer": "", "maintainer_email": "", "name": "serverlessplus", "package_url": "https://pypi.org/project/serverlessplus/", "platform": "", "project_url": "https://pypi.org/project/serverlessplus/", "project_urls": { "Homepage": "https://github.com/serverlessplus/py" }, "release_url": "https://pypi.org/project/serverlessplus/0.0.8/", "requires_dist": [ "werkzeug" ], "requires_python": "", "summary": "serverless your django/flask apps", "version": "0.0.8" }, "last_serial": 5121401, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "7769e0ba8bd2fdc209cf06b2d88d08e4", "sha256": "870827cbdb254c77babe6da4d49e848049d8f14c776b7756c00ebe9a697c6564" }, "downloads": -1, "filename": "serverlessplus-0.0.0.tar.gz", "has_sig": false, "md5_digest": "7769e0ba8bd2fdc209cf06b2d88d08e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 939, "upload_time": "2019-04-05T15:24:20", "url": "https://files.pythonhosted.org/packages/b0/f8/094064db4094ca24656be3a194a727e1856c9b6d8acde87e058436615c6c/serverlessplus-0.0.0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "6d9e1e1804add22860c5cf79bbd93530", "sha256": "de78ba91d5662d86db1d75e510366024a0467d1daff4e02216ef9758ed8601e0" }, "downloads": -1, "filename": "serverlessplus-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6d9e1e1804add22860c5cf79bbd93530", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1772, "upload_time": "2019-04-06T08:30:38", "url": "https://files.pythonhosted.org/packages/60/12/fc6f2766a205e7c772b8e5a8635a9cc407ac9f64cf8cc04bc8b76a1a9cce/serverlessplus-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "f3224360eabd35b80181cd61366f2aba", "sha256": "30b529c611461456aa35da189144815bfe55fb4e049c08830e4f790eb5538484" }, "downloads": -1, "filename": "serverlessplus-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f3224360eabd35b80181cd61366f2aba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1767, "upload_time": "2019-04-06T08:49:38", "url": "https://files.pythonhosted.org/packages/f4/18/3e88449836b9a84288d68e73930ed02c2e589d5725a61910cb3b588df06d/serverlessplus-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "d133f1708eb09b04dd5421176ace3042", "sha256": "8a3f0473918776df05972efc2da4e152cabfea529ef10f8bee5d5e3e9fb38c66" }, "downloads": -1, "filename": "serverlessplus-0.0.3.tar.gz", "has_sig": false, "md5_digest": "d133f1708eb09b04dd5421176ace3042", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1844, "upload_time": "2019-04-06T09:27:52", "url": "https://files.pythonhosted.org/packages/57/bc/1fdfb7d767feae308628d51033410d7bd569137fc9e88193d7e85b2fc823/serverlessplus-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "a7376a5fccde943998887520f898239c", "sha256": "fa05a3fff545e50c56ebdb932a9ce784c72e6b68aa1ab20b0b72f3f6c501e806" }, "downloads": -1, "filename": "serverlessplus-0.0.4.tar.gz", "has_sig": false, "md5_digest": "a7376a5fccde943998887520f898239c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1887, "upload_time": "2019-04-06T14:02:30", "url": "https://files.pythonhosted.org/packages/54/fe/92cce86ec292d31f6c683671834bab12c46a1194d77e443ed65cbe674e93/serverlessplus-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "5257af020c03f002204b57dc89842ecb", "sha256": "cefcae043ab8796ad4835b938432d1deea63d4ecc2b731592af82e9559a1b8be" }, "downloads": -1, "filename": "serverlessplus-0.0.5.tar.gz", "has_sig": false, "md5_digest": "5257af020c03f002204b57dc89842ecb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2950, "upload_time": "2019-04-06T14:17:45", "url": "https://files.pythonhosted.org/packages/fc/43/b35e9badece8db38572bbf47175f6b6da1af0b9f03b5e5f90866d67a5c0d/serverlessplus-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "2d55850e45e9cfd24abd6ae7a2ebbb7b", "sha256": "33244077c1a25d283759243ef230c2a6719dfe4ebf94aed4284df224145cefc2" }, "downloads": -1, "filename": "serverlessplus-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "2d55850e45e9cfd24abd6ae7a2ebbb7b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7886, "upload_time": "2019-04-06T14:47:21", "url": "https://files.pythonhosted.org/packages/9e/6e/4741c607c313d3758feccfddd92b22fa1e54bfd37092f077f7f52d798fe7/serverlessplus-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0df521a2143e7864b722620bb0aa2bde", "sha256": "b6cd4026aefc239a5b81092fe9ec9f618ed4e771b57d8784e8c91ccf3d5b3a56" }, "downloads": -1, "filename": "serverlessplus-0.0.6.tar.gz", "has_sig": false, "md5_digest": "0df521a2143e7864b722620bb0aa2bde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3355, "upload_time": "2019-04-06T14:47:22", "url": "https://files.pythonhosted.org/packages/64/65/e59f331c3fc2882c9fa5a077489eb289695521a12608676074075dcad4e9/serverlessplus-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "e14164bf7e120a7176e2737906fb6d29", "sha256": "9a4bdf84402dd746d7b70380787ab36226fbec5c8565479993045fd43764320c" }, "downloads": -1, "filename": "serverlessplus-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "e14164bf7e120a7176e2737906fb6d29", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7905, "upload_time": "2019-04-07T04:47:44", "url": "https://files.pythonhosted.org/packages/2c/27/e86cc142d220eaec26568ea7b338284a7494e5b4d8c1b43257f1ad3c3609/serverlessplus-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f162ec8224b1d7cf2d89006d2850981d", "sha256": "05862aa1db50d612a6966ba35936dd12d6c6e910592a199e106c80210e52a21b" }, "downloads": -1, "filename": "serverlessplus-0.0.7.tar.gz", "has_sig": false, "md5_digest": "f162ec8224b1d7cf2d89006d2850981d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7418, "upload_time": "2019-04-07T04:47:46", "url": "https://files.pythonhosted.org/packages/90/a2/2957705b0b3ffdcdf9eb1f05eb5275e36158fb7ad9a1cf4474da93752091/serverlessplus-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "d89314c8a7b36d2d13d8cede7268e884", "sha256": "6ca6dd905982e4a26217ecc5be7956be67f6b72db4ab17da4c22a1350ed9ac77" }, "downloads": -1, "filename": "serverlessplus-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "d89314c8a7b36d2d13d8cede7268e884", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7918, "upload_time": "2019-04-10T00:04:29", "url": "https://files.pythonhosted.org/packages/c6/42/ff88201fe1c826148071fe147d296d9e2b132990c40dc8bd14bef6c6761f/serverlessplus-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18b2003882f053c056a077223b3a3791", "sha256": "f593f80908f03a14cb76a9770d80eb93ef7cd3afb7fb58410d72145108194cda" }, "downloads": -1, "filename": "serverlessplus-0.0.8.tar.gz", "has_sig": false, "md5_digest": "18b2003882f053c056a077223b3a3791", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7432, "upload_time": "2019-04-10T00:04:31", "url": "https://files.pythonhosted.org/packages/84/b9/3fb0c91558ab3769f89c86c9529df416bce19850e541162fbcf580f2eea3/serverlessplus-0.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d89314c8a7b36d2d13d8cede7268e884", "sha256": "6ca6dd905982e4a26217ecc5be7956be67f6b72db4ab17da4c22a1350ed9ac77" }, "downloads": -1, "filename": "serverlessplus-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "d89314c8a7b36d2d13d8cede7268e884", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7918, "upload_time": "2019-04-10T00:04:29", "url": "https://files.pythonhosted.org/packages/c6/42/ff88201fe1c826148071fe147d296d9e2b132990c40dc8bd14bef6c6761f/serverlessplus-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18b2003882f053c056a077223b3a3791", "sha256": "f593f80908f03a14cb76a9770d80eb93ef7cd3afb7fb58410d72145108194cda" }, "downloads": -1, "filename": "serverlessplus-0.0.8.tar.gz", "has_sig": false, "md5_digest": "18b2003882f053c056a077223b3a3791", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7432, "upload_time": "2019-04-10T00:04:31", "url": "https://files.pythonhosted.org/packages/84/b9/3fb0c91558ab3769f89c86c9529df416bce19850e541162fbcf580f2eea3/serverlessplus-0.0.8.tar.gz" } ] }