示例#1
0
 async def home(self, request):
     # return viewResponse('<h1>ahahahahhahah</h1>', status=200)
     # return jsonResponse({'name': 'admin', 'age': 30})
     name = request.request.query['name']
     age = request.request.query['age']
     html = '<h2>this is {name} and i am {age}.'.format(name=name, age=age)
     return viewResponse(html, status=200)
示例#2
0
    async def index(self, request):
        # 定义监听(事件类及监听类方式)
        # app('events').listen('app.Events.UserRegister', 'app.Listeners.UserRegisterListener')

        # 定义监听 (闭包形式)
        # app('events').listen('test',self.userRegister())

        # 一组事件公用一个监听
        # app('events').listen(['foo', 'bar', 'baz'], 'app.Listeners.UserRegisterListener')

        # 一个事件被多个监听者监听可以在app/Providers/EventServiceProvider下定义

        # 建议在app/Providers/EventServiceProvider定义监听

        # 事件类继承Dispatchable可以用如下方式调用
        # await UserRegister.dispatch({'name': 'admin'})
        # 方式二
        # await app('events').dispatch(UserRegister({'name': 'admin'}))
        # 方式三
        # await app('events').dispatch('app.Events.UserRegister', {'name': 'admin'})

        # 框架提供的方法
        # 返回一个所有任务完成的futrue 和一个tasks列表
        # future, tasks = await app('events').dispatch(UserRegister({'name': 'admin'}),returnExceptions=True)
        # [task.add_done_callback(self.getSingleCallback()) for task in tasks]
        # future.add_done_callback(self.getAllDoneCallback('一组完成'))

        # task写法 (原生写法一,通过任务的形式、推荐)
        # tasks = [asyncio.create_task(self.task()) for _ in range(10)]
        #
        # for task in tasks:
        #     task.add_done_callback(self.getSingleCallback())
        #
        # future = asyncio.gather(*tasks)
        #
        # future.add_done_callback(self.getAllDoneCallback('all task done'))

        # coro写法 (原生写法二)
        # coros = [self.task() for _ in range(10)]
        #
        # future = asyncio.gather(*coros)
        #
        # future.add_done_callback(self.getAllDoneCallback('all done'))
        #

        # 延迟任务
        # loop = asyncio.get_running_loop()
        #
        # result = loop.call_later(5,self.test(),'this is a test',5)

        # 用多线程的方式解决无法找到适配的异步客户端
        from concurrent.futures import ThreadPoolExecutor
        loop = asyncio.get_running_loop()
        executor = ThreadPoolExecutor()
        loop.run_in_executor(executor, self.ioBlocking)
        # tasks = [loop.run_in_executor(executor,self.ioBlocking) for _ in range(10)]
        # [task.add_done_callback(self.getIoBlockingCallback()) for task in tasks]
        return viewResponse('task has done')
示例#3
0
    async def event(self, request):
        # app('events').listen('app.Events.UserRegister', 'app.Listeners.UserRegisterListener')
        # UserRegister.dispatch({'name':'admin'})

        # print(app('events').listeners)
        # exit()

        # for _ in range(30):
        #     re = await app('events').dispatch('test', {'name': 'test'})
        #     re.add_done_callback(self.hello())

        # await UserRegister.dispatch({'name': 'admin'})
        # await app('events').dispatch(UserRegister({'name': 'foxirver'}))

        coros = [self.coro({'name': 'test'}) for _ in range(30)]

        future = asyncio.gather(*coros)

        future.add_done_callback(partial(self.hello, 'hello world'))

        return viewResponse('done')
示例#4
0
    async def qiniu(self, request):
        ak = 'cXuruOsjHdk6kVGu4lVx7izG1O96ZyK8lis32ZDG'
        sk = 'a7em2JOptQXuD6Hf85DsOLjHjBlvLjC6DhmxzRef'
        from qiniu import Auth, put_file, etag
        from laravel.Helps.Help import app
        q = Auth(ak, sk)
        # 要上传的空间
        bucket_name = 'larapy'
        # 上传后保存的文件名
        key = 'laray6666.jpg'
        # 生成上传 Token,可以指定过期时间等
        token = q.upload_token(bucket_name, key, 3600)
        # 要上传文件的本地路径
        localfile = app().staticPath + 'laravel/laravel.jpg'

        # print(localfile)

        ret, info = put_file(token, key, localfile)

        # print(info)

        return viewResponse('done')
示例#5
0
 async def index(self, request):
     return viewResponse('<h1>UserController@index</h1>')
示例#6
0
 async def foo(self, request):
     # await asyncio.sleep(1)
     return viewResponse('this is homecontroller@foo')
示例#7
0
    async def index(self, request):
        await asyncio.sleep(1)

        name = request.get('name',default='haha')
        return viewResponse('i am {}'.format(name))