Browse Source

doc: add aiohttp backend doc

wangweimin 5 years ago
parent
commit
5e882ec45c
6 changed files with 29 additions and 11 deletions
  1. 1 1
      README.md
  2. 18 1
      docs/guide.rst
  3. 2 2
      docs/index.rst
  4. 1 1
      docs/static/pywebio.css
  5. 6 5
      pywebio/platform/__init__.py
  6. 1 1
      pywebio/platform/aiohttp.py

+ 1 - 1
README.md

@@ -34,7 +34,7 @@ PyWebIO还可以方便地整合进现有的Web服务,让你不需要编写Html
 - 代码侵入性小,对于旧脚本代码仅需修改输入输出逻辑
 - 代码侵入性小,对于旧脚本代码仅需修改输入输出逻辑
 - 支持多用户与并发请求
 - 支持多用户与并发请求
 - 支持结合第三方库实现数据可视化
 - 支持结合第三方库实现数据可视化
-- 支持整合到现有的Web服务,目前支持与Flask、Django、Tornado框架集成
+- 支持整合到现有的Web服务,目前支持与Flask、Django、Tornado、aiohttp框架集成
 - 同时支持基于线程的执行模型和基于协程的执行模型
 - 同时支持基于线程的执行模型和基于协程的执行模型
 
 
 
 

+ 18 - 1
docs/guide.rst

@@ -320,7 +320,8 @@ PyWebIO 目前支持与Flask和Tornado Web框架的集成。
             app = Flask(__name__)
             app = Flask(__name__)
 
 
             # task_func 为使用PyWebIO编写的任务函数
             # task_func 为使用PyWebIO编写的任务函数
-            app.add_url_rule('/io', 'webio_view', webio_view(target=task_func), methods=['GET', 'POST', 'OPTIONS'])
+            app.add_url_rule('/io', 'webio_view', webio_view(target=task_func),
+                             methods=['GET', 'POST', 'OPTIONS'])
 
 
             @app.route('/')
             @app.route('/')
             @app.route('/<path:static_file>')
             @app.route('/<path:static_file>')
@@ -350,6 +351,22 @@ PyWebIO 目前支持与Flask和Tornado Web框架的集成。
                 path(r'<path:path>', serve, {'document_root': STATIC_PATH}),
                 path(r'<path:path>', serve, {'document_root': STATIC_PATH}),
             ]
             ]
 
 
+   .. tab:: aiohttp
+
+        添加两个PyWebIO相关的路由:一个用来提供静态的前端文件,另一个用来和浏览器进行WebSocket通讯::
+
+            from aiohttp import web
+            from pywebio.platform.aiohttp import static_routes, webio_handler
+            from pywebio import STATIC_PATH
+
+            app = web.Application()
+            # task_func 为使用PyWebIO编写的任务函数
+            app.add_routes([web.get('/io', webio_handler(task_func))])
+            app.add_routes(static_routes(STATIC_PATH))
+
+            web.run_app(app, host='localhost', port=8080)
+
+
 .. _integration_web_framework_note:
 .. _integration_web_framework_note:
 
 
 注意事项
 注意事项

+ 2 - 2
docs/index.rst

@@ -10,7 +10,7 @@ PyWebIO还可以方便地整合进现有的Web服务,让你不需要编写Html
 - 使用同步而不是基于回调的方式获取输入,无需在各个步骤之间保存状态,使用更方便
 - 使用同步而不是基于回调的方式获取输入,无需在各个步骤之间保存状态,使用更方便
 - 代码侵入性小,对于旧脚本代码仅需修改输入输出逻辑
 - 代码侵入性小,对于旧脚本代码仅需修改输入输出逻辑
 - 支持多用户与并发请求
 - 支持多用户与并发请求
-- 支持整合到现有的Web服务,目前支持与Tornado和Flask的集成
+- 支持整合到现有的Web服务,目前支持与Flask、Django、Tornado、aiohttp框架集成
 - 同时支持基于线程的执行模型和基于协程的执行模型
 - 同时支持基于线程的执行模型和基于协程的执行模型
 
 
 
 
@@ -79,9 +79,9 @@ Documentation
    output
    output
    session
    session
    platform
    platform
-   misc
    libraries_support
    libraries_support
    demos
    demos
+   misc
 
 
 .. toctree::
 .. toctree::
    :maxdepth: 2
    :maxdepth: 2

+ 1 - 1
docs/static/pywebio.css

@@ -6,7 +6,7 @@
 }
 }
 
 
 .ui.tabular.menu .item {
 .ui.tabular.menu .item {
-    padding: .25em 1em;
+    padding: 9px 1em;
 }
 }
 
 
 .ui.menu .item {
 .ui.menu .item {

+ 6 - 5
pywebio/platform/__init__.py

@@ -3,24 +3,25 @@ r"""
 
 
 Tornado相关
 Tornado相关
 --------------
 --------------
-
 .. autofunction:: start_server
 .. autofunction:: start_server
 .. autofunction:: pywebio.platform.tornado.webio_handler
 .. autofunction:: pywebio.platform.tornado.webio_handler
 
 
 Flask相关
 Flask相关
 --------------
 --------------
-
 .. autofunction:: pywebio.platform.flask.webio_view
 .. autofunction:: pywebio.platform.flask.webio_view
-
 .. autofunction:: pywebio.platform.flask.start_server
 .. autofunction:: pywebio.platform.flask.start_server
 
 
 Django相关
 Django相关
 --------------
 --------------
-
 .. autofunction:: pywebio.platform.django.webio_view
 .. autofunction:: pywebio.platform.django.webio_view
-
 .. autofunction:: pywebio.platform.django.start_server
 .. autofunction:: pywebio.platform.django.start_server
 
 
+aiohttp相关
+--------------
+.. autofunction:: pywebio.platform.aiohttp.webio_handler
+.. autofunction:: pywebio.platform.aiohttp.static_routes
+.. autofunction:: pywebio.platform.aiohttp.start_server
+
 其他
 其他
 --------------
 --------------
 .. autofunction:: pywebio.platform.httpbased.run_event_loop
 .. autofunction:: pywebio.platform.httpbased.run_event_loop

+ 1 - 1
pywebio/platform/aiohttp.py

@@ -122,7 +122,7 @@ def webio_handler(target, allowed_origins=None, check_origin=None, websocket_set
 
 
 
 
 def static_routes(static_path):
 def static_routes(static_path):
-    """获取用于配置PyWebIO静态文件的aiohttp路由"""
+    """获取用于提供PyWebIO静态文件的aiohttp路由"""
 
 
     async def index(request):
     async def index(request):
         return web.FileResponse(path.join(STATIC_PATH, 'index.html'))
         return web.FileResponse(path.join(STATIC_PATH, 'index.html'))