{ "info": { "author": "Bslience", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "Fastweb - \u9ad8\u901f\u8fed\u4ee3 \u00b7 \u5feb\u901f\u8bd5\u9519\n============================\n\n|build-status|\n\n\u4f9d\u8d56 ``Tornado`` ``Celery`` ``Thrift`` \u5f00\u53d1\u7684\u5feb\u901f\u6784\u5efaweb\u5e94\u7528\u7684\u6846\u67b6\u3002\n\nWeb\u5c42\u793a\u4f8b\n--------\n\n.. code-block:: ini\n\n ;\u7ec4\u4ef6\u914d\u7f6e\u6587\u4ef6(component.ini)\n\n ;thrift rpc \u7ec4\u4ef6\u914d\u7f6e\n [tftrpc:hello_service]\n host = localhost\n port = 8888\n thrift_module = gen-py-tornado.HelloService.HelloService\n size = 10\n\n ;mysql\u7ec4\u4ef6\u914d\u7f6e\n [mysql:test_mysql]\n host = localhost\n port = 3306\n user = username\n password = password\n db = db_name\n timeout = 5\n charset=utf8\n size=5\n awake = 300\n\n ;mongo\u7ec4\u4ef6\u914d\u7f6e\n [mongo:test_mongo]\n host = localhost\n port = 27017\n timeout = 10\n\n ;redis\u7ec4\u4ef6\u914d\u7f6e\n [redis:test_redis]\n host = localhost\n port = 6379\n db = 1\n\n ;task\u7ec4\u4ef6\u914d\u7f6e\n [task:test_task]\n name = test_task\n broker = amqp://guest:guest@localhost:5672//\n backend = redis://localhost/0\n task_class = some_tasks.add.Add\n queue = test_task_queue\n exchange = test_task_exchange\n routing_key = test_task_routing_key\n\n.. code-block:: python\n\n \"\"\"handler\uff08handler.test\uff09\"\"\"\n\n from fastweb import Request\n from fastweb.web import Api, Page\n from fastweb.web import coroutine, run_on_executor\n\n class Test(Api):\n\n @coroutine\n @checkArgument(name=str, sex=int)\n def get(self):\n\n # \u52a0\u8f7dhandler\u7ea7\u522b\u7ebf\u7a0b\u6c60\n self.load_executor(5)\n # handler\u7ea7\u522b\u7ebf\u7a0b\u6c60\u793a\u4f8b\n r = yield self.test_executor()\n\n # mysql\u4f7f\u7528\u793a\u4f8b\n ret = yield self.test_mysql.query('select * from table limit 20;')\n print self.test_mysql.fetch()\n\n # RPC\u4f7f\u7528\u793a\u4f8b\n yield self.hello_service.sayHello()\n\n # Redis\u4f7f\u7528\u793a\u4f8b\n yield self.test_redis.call('set', 'name', 'jackson')\n\n # Http\u8bf7\u6c42\u793a\u4f8b\n request = Request(method='GET', url='http://www.baidu.com')\n ret = yield self.http_request(request)\n\n # \u4efb\u52a1\u8c03\u7528\u793a\u4f8b\n yield self.test_task.call_async(args=(101, 2))\n x = yield self.test_task.call(args=(101, 2))\n\n # response\n self.end('SUC', log=False, **{'name':0})\n\n # \u5728handler\u7ea7\u522b\u7ebf\u7a0b\u6c60\u4e2d\u8fd0\u884c\n @run_on_executor\n def test_executor(self):\n time.sleep(10)\n return 1000\n\n \"\"\"\u670d\u52a1\u52a0\u8f7d\u7ec4\u4ef6\u548c\u542f\u52a8\"\"\"\n\n from fastweb.web import start_web_server\n from fastweb.loader import app\n from fastweb.pattern import SyncPattern, AsynPattern\n\n if __name__ == '__main__':\n\n options.parse_command_line()\n app.load_recorder('app.log', system_level='DEBUG')\n app.load_configuration(backend='ini', path='component.ini')\n app.load_errcode()\n app.load_component(pattern=AsynPattern, backend='ini', path=options.config)\n app.load_component(pattern=AsynPattern, backend='ini', path='task.ini')\n\n from handler.test import Test\n\n handlers = [(r'/test', Test)]\n\n start_web_server(6666, handlers, debug=True, xheaders=False)\n\n\nTask\u5c42\u793a\u4f8b\n---------\n\n.. code-block:: ini\n\n ;task\u914d\u7f6e\u6587\u4ef6(task.ini)\n\n ;task\u7ec4\u4ef6\u914d\u7f6e\n [task:test_task]\n name = test_task\n broker = amqp://guest:guest@localhost:5672//\n backend = redis://localhost/0\n task_class = some_tasks.add.Add\n queue = test_task_queue\n exchange = test_task_exchange\n routing_key = test_task_routing_key\n\n.. code-block:: python\n\n class Add(object):\n \"\"\"\u4efb\u52a1\"\"\"\n\n def run(self, x, y):\n return x+y\n\n if __name__ == '__main__':\n app.load_recorder('task.log', system_level='DEBUG')\n app.load_component(pattern=AsynPattern, backend='ini', path='task.ini')\n start_task_worker()\n\nService\u5c42\u793a\u4f8b\n------------\n\n\u8bf7\u53c2\u8003examples\u4e2d\u793a\u4f8b\u3002\n \n\u5b89\u88c5\n----\n\n``python setup install``\n\n``pip install fastweb``\n\n\u9002\u7528\u573a\u666f\n-------\n\nFastweb\u662f\u4e00\u4e2a\u5feb\u901f\u6784\u5efaweb\u5e94\u7528\u7684\u6846\u67b6\uff0c\u4e0ePython\u7684\u54f2\u5b66\u76f8\u540c\uff0c\u90fd\u662f\u671f\u671b\u80fd\u591f\u8ba9\u4f7f\u7528\u8005\u66f4\u5feb\u901f\u7684\u5f00\u53d1\u51fa\u6ee1\u8db3\u9700\u6c42\u7684\u540e\u7aef\u4ee3\u7801\u3002\n\u9ad8\u901f\u8fed\u4ee3\uff0c\u5feb\u901f\u8bd5\u9519\uff0c\u8fd9\u662f\u4f7f\u7528Fastweb\u6700\u5927\u7684\u6548\u76ca\uff01\n\n\u6289\u62e9\n----\n\u5173\u4e8e\u4e3a\u4ec0\u4e48\u9009\u62e9 ``Tornado`` ``Celery`` ``Thrift`` \u4f5c\u4e3aFastweb\u7684\u5de5\u5177\u96c6\u5408\u4e2d\u7684\u91cd\u8981\u6210\u5458\u3002\n\n\n.. |build-status| image:: https://travis-ci.org/BSlience/fastweb.svg?branch=master\n :alt: Build status\n :target: https://travis-ci.org/BSlience/fastweb", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "cli-fastweb", "package_url": "https://pypi.org/project/cli-fastweb/", "platform": "", "project_url": "https://pypi.org/project/cli-fastweb/", "project_urls": null, "release_url": "https://pypi.org/project/cli-fastweb/1.4.2.3/", "requires_dist": null, "requires_python": "", "summary": "FastWeb is a Python fast-building web frame refered by Tornado, Celery, Thrift", "version": "1.4.2.3" }, "last_serial": 3181729, "releases": { "1.4.2.2": [ { "comment_text": "", "digests": { "md5": "cc2bc7ae8e153927d828922459d5f0fc", "sha256": "95e64312a78571c9e53867b714888972f8b3caf45808c1e22ef40ea9f11847ec" }, "downloads": -1, "filename": "cli_fastweb-1.4.2.2.tar.gz", "has_sig": false, "md5_digest": "cc2bc7ae8e153927d828922459d5f0fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50767, "upload_time": "2017-08-30T06:29:32", "url": "https://files.pythonhosted.org/packages/a7/13/9fc2f79c490be9979edcf2144678a6ba92650133adc9b71ffd4e12da9969/cli_fastweb-1.4.2.2.tar.gz" } ], "1.4.2.3": [ { "comment_text": "", "digests": { "md5": "a7e6cdd5f52aac30e0940c794814e101", "sha256": "054670a988a8fb2663de248518d1dbcd7d3d5d175ebb4b354589536ebcc36aa4" }, "downloads": -1, "filename": "cli_fastweb-1.4.2.3.tar.gz", "has_sig": false, "md5_digest": "a7e6cdd5f52aac30e0940c794814e101", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50808, "upload_time": "2017-09-18T07:25:09", "url": "https://files.pythonhosted.org/packages/17/83/67d0e1860f8319c7a4ade7fcbca2f3e7b28c6708466d4b79a5b1980ab309/cli_fastweb-1.4.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a7e6cdd5f52aac30e0940c794814e101", "sha256": "054670a988a8fb2663de248518d1dbcd7d3d5d175ebb4b354589536ebcc36aa4" }, "downloads": -1, "filename": "cli_fastweb-1.4.2.3.tar.gz", "has_sig": false, "md5_digest": "a7e6cdd5f52aac30e0940c794814e101", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50808, "upload_time": "2017-09-18T07:25:09", "url": "https://files.pythonhosted.org/packages/17/83/67d0e1860f8319c7a4ade7fcbca2f3e7b28c6708466d4b79a5b1980ab309/cli_fastweb-1.4.2.3.tar.gz" } ] }