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)
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')
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')
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')
async def index(self, request): return viewResponse('<h1>UserController@index</h1>')
async def foo(self, request): # await asyncio.sleep(1) return viewResponse('this is homecontroller@foo')
async def index(self, request): await asyncio.sleep(1) name = request.get('name',default='haha') return viewResponse('i am {}'.format(name))