Tornado从入门到进阶 打造支持高并发的技术论坛
hubingshabi
这个作者很懒,什么都没留下…
展开
-
peewee与peewee_async使用的注意事项
当model类有外键时,怎么处理?model类中使用的是peewee_async的database,异步驱动对象,而你调用外键对象的属性时,id = message.sender.id外键模型类对象会调用peewee的方法,而peewee是同步ORM库,所以会报错AssertionError: Error, sync query is not allowed! Call the ...原创 2019-11-11 23:17:43 · 1788 阅读 · 0 评论 -
项目日志---wtforms_json出错,
原因是wtforms_json底层调用了WTForms-SQLAlchemy,WTForms-SQLAlchemy会调用sqlalchemy,所以sqlalchemy也报了xxx错误,由此可以推测是我的sqlalchemy版本过高,解决的办法就是安装这几个模板兼容的版本,首先卸载sqlalchemy,但我卸载后,重写运行,项目居然运行正常,再当我重写下载sqlalchemy库后,继...原创 2019-11-11 22:17:58 · 561 阅读 · 0 评论 -
raise HTTPError(self._status_code) tornado.web.HTTPError: HTTP 404: Not Foun
一般是路由配置错误,检查一下就好了,然后清除一下浏览器缓存,就行了原创 2019-11-10 18:19:19 · 2397 阅读 · 0 评论 -
Cookie跨域小知识
今天做前后端分离的项目时,发现:前端项目url:localhost:80,与后端项目的url: localhost:8888,但是设置的cookie,前后端可以共享查看资料发现:根据同源策略,cookie是区分端口的,但是浏览器实现来说,“cookie区分域,而不区分端口,也就是说,同一个ip下的多个端口下的cookie是共享的!“,题主所说的ip相同,端口不同,覆盖就是这个道理。...原创 2019-11-09 17:52:40 · 538 阅读 · 0 评论 -
前后端分离优缺点
为什么要前后端分离pc,app, pad多端适合 SPA(single page) 开发模式开始流行 前后端开发职责不清 开发效率问题,前后端互相等待 前端一直配合后端,能力有限 后台开发语言和模板高度耦合,导致开发语言依赖严重前后端分离的缺点前后端学习门槛增加 数据依赖导致文档重要性增加 前端工作量加大 SEO的难度加大 后端开发模式迁移增加成本...原创 2019-11-05 23:07:55 · 1242 阅读 · 0 评论 -
7-1 为什么我们会选择peewee作为课程的orm
为什么要使用ORM隔壁数据库之间的差异【数据库引擎驱动差异,数据库sql的差异】 便于维护 orm会提供防sql注入 变量传递式的调用更加简单 很多立志不用orm的项目会慢慢自己开发一套orm为什么选择peeweedjango orm 、sqlalchemy、peewee 简单、灵活、申明方式和django的orm接近 star数量高、灵活度高 文档质量高、asyn...原创 2019-11-05 17:47:38 · 359 阅读 · 0 评论 -
4-2 同步、异步、阻塞和非阻塞
一些事实cpu的速度远高于io速度 IO包括网络访问和本地文件访问,比如requests,urllib等传统的网络库都是同步io 网络IO大部分的时间都是处于等待的状态,在等待的时候cpu是空闲的,但是又不是执行其他操作...原创 2019-11-03 18:52:19 · 115 阅读 · 0 评论 -
4-1 tornado提供了哪些功能
Tornado 大体上可以被分为4个主要的部分:web框架 (包括创建web应用的RequestHandler类,还有很多其他支持的类). HTTP的客户端和服务端实现 (HTTPServerandAsyncHTTPClient). 异步网络库 (IOLoopandIOStream基于tcp), 为HTTP组件提供构建模块,也可以用来实现其他协议. 协程库 (tornado...原创 2019-11-03 17:41:10 · 205 阅读 · 0 评论 -
3-5 尽量使用async和await而不是coroutine装饰器和yield from
基于coroutine是一个从生成器过度到协程的方案 yield和await的混合使用造成代码的可读性很差 生成器可以模拟协程,但是生成器应该作自己 原生协程可以使用async for和async with更符合python风格 原生协程返回的是一个awaitable的对象、装饰器的协程返回的是一个future...原创 2019-11-03 17:32:17 · 245 阅读 · 1 评论 -
3-4 你可能在错误的使用tornado
tornado提供的知识web框架 只要用tornado就是高并发的,事件循环的模式底层来讲是单线程的 为了尽量减少并发连接造成的开销,Tornado使用了一种单线程事件循环的方式 tornado中使用大量的同步io tornado只需要将耗时的操作放到线程池中就可以达到高并发 tornado中的多线程和协程的单线程是不是冲突的 在tornado中会有一个主线程去完成我们的协程的事...原创 2019-11-03 17:26:11 · 319 阅读 · 0 评论 -
3-3 tornado是如何做到高并发的
异步非阻塞io 底层是基于epoll事件循环 协程提高了代码的可读性原创 2019-11-03 17:06:30 · 1180 阅读 · 0 评论 -
3-2 tornado的优势
tornado的优势异步编码的一整套方案 tornado不只是web框架,也是web服务器 tornado是基于协程的解决方案 操作系统调度的最小单元是线程,所以协程需要程序员自己去调度 tornado提供websocket的长连接(web聊天,消息推送,私信)...原创 2019-11-03 15:35:54 · 399 阅读 · 0 评论 -
1-1 Tornado从入门到进阶 打造支持高并发的技术论坛-导语
1-1 导语 对高并发的底层知识,特别是异步io不是很熟悉,达不到tornado真正的并发优势 tornado是为了打造一个并发和长连接的web框架和web服务器 1-2 tornado介绍它是非阻塞式的服务器,而且速度相当块 得利于其非阻塞式的方式和epoll的运用,tornado每秒可以处理数以千计的连接,因此tornado是实时web服务的一个理想框架 torna...原创 2019-11-03 15:17:43 · 950 阅读 · 1 评论