01 ORM 在服务器后台,数据是要存储在数据库的,但是如果项目在开发和部署的时候,是使用的不同的数据库,该怎么办呢?是不是需要把所有的 SQL 语句都再重新写一遍呢? 和数据库相关,不同的数据库需要写不同的 SQL 语句 使用 ORM 隔离框架和数据库 ORM全称 Object Relational Mapping对象关系映射 通过 ORM 可以不用关心后台是使用的哪种数据库,只需要按照 ORM 所提供的语法规则去书写相应的代码, ORM 就会自动的转换成对应数据库的 SQL 语句 ,一个类对…
websocket 01 长轮询 在网页,我们经常扫码登录,结合之前的学习的知识点,来思考下,前端是如何知道用户在手机上扫码登录了呢? 长轮询:客户端不断的向服务器发送请求 缺点: \1. 开销大 \2. 浪费资源 \3. 消耗流量 02 websocket介绍 长轮询消耗太多资源,其中主要原因是客户端和服务端并没有一直连接在一起,如果能够让客户端和服务器一直保持连接呢? 正经介绍 WebSocket 协议是基于 TCP 的一种新的 HTML5 网络协议.它实现了浏览器与服务器全双工(full-…
01 同步和异步 生活中常常会遇到在超市排队买东西的情况,排在你前面的人没有结算完成,你就无法付账,在计算机中也有类似的情形,一个程序在执行之前,需要等待其他的程序执行完成,大家还能举出其他的例子吗? 同步 含义:指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系 现象:有一个共同的时钟,按来的顺序一个一个处理 直观感受 :就是需要等候,效率低下 异步 含义 :双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在…
01 一对一表关系 Module 需要先创建对应的 Module ,这里采用之前建立好的 User 和 UserDetails relationship from sqlalchemy.orm import relationship 在 UserDetails 中添加如下代码: userdetail = relationship('User',backref='details',uselist=False,cascade='all') backref往User里面添加一个属性. 使用 rows…
tornado 小而精 Django 大而全 Web框架 Tornado是一个由Python开发的Web框架 Web服务 利用Tornado,可以快速搭建和一个高性能的Web服务 非阻塞 Tornado是单线程异步的非阻塞服务器,因此速度非常快,相对一般情况下来说,如果同时连接数Django为3000个左右,那么Tornado为10000个 易于学习 Tornado的学习成本非常低,是个非常容易学习使用的Web框架 Tornado的安装 pip install tornado import to…
01 cookie 在上节,我们简单了解了登录过程,但是很明显,每次都需要登录,但是在平常逛网站的只需要登录一次,那么网站是如何记录登录信息的呢? 有没有什么办法可以让浏览器记住登录信息,下次再次打开的时候,可以自动登录呢? 设置 cookie self.set_cookie('cookie_test','this_is_test')#默认过期时间是浏览器关闭会话时 self.set_cookie('cookie_test1','this_is_test',expires=time.time()…
01 查询结果 上节使用query从数据库中查询到了结果,但是query返回的对象是直接可用的吗? 首先导入模块 from connect import session from user_modules import User  query**返回对象** rs = session.query(User).filter(User.username=='budong') print(rs, type(rs)) 根据返回结果来看, rs 是一个 Query 对象,打印出来可以看到转化的 SQL语句…
01 模板继承 父模板​ <html lang="en"> <head>     <meta charset="UTF-8">​ <link rel="shortcut icon" href="{{ static_url('images/favicon.ico')}}"> </head> <body> {% block body %} this is to…
01 模板 模板演示 配置路径 在 application 中配置模板文件和静态文件的路径: template_path='templates', static_path='static', 模板 <body> 欢迎{{ username }}登录 </body> Handler class TemplatesHandler(tornado.web.RequestHandler): def get(self): self.write('templates') self.render…
01 请求与响应 请求 浏览器在发送请求的时候,会发送具体的请求信息,由请求行,请求消息头,请求正文 请求消息头 向服务器传递附加信息 Accept: 浏览器可以接受的MIME类型. Accept-Charset: 浏览器支持的字符集,如gbk,utf-8 Accept-Encoding: 浏览器能够解码的数据压缩方式, 如:gzip,deflate Accept-language: 所希望的语言 Host:请求的主机和端口 User-Agent:通知服务器,浏览器类型. Content-Len…
01 输出 write bytes类型 class IndexHandler(tornado.web.RequestHandler): def get(self): self.write(b'Tornado ') 字典类型 user = { 'name': 'budong', 'age': 18 } self.write(user) 当传字典进去 不解析了.因为遇到json类型数据将所有内容全部转成json字符串格式,导致换行符不解析. unicode self.write('Tornado '…
本文源码:GitHub·点这里 || GitEE·点这里 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,MVC分层有助于管理和架构复杂的应用程序 M:代表模型Model 模型就是数据,应用程序的核心. V:代表视图View 回显数据的界面,例如JSP就是用来展示模型中的数据. C:代表控制器Controller 控制器的作…
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotNet-Framework.aspx (非常经典的一篇文章) 精通C# (第六版) CLR via C# (第三版) 1 术语 面试出现频率:从来没人问过.事实上我都不知道怎么问,考背书吗?倒是可以问问知不知道现在.NET最新版本是什么,考察面试者是否对新技术足够敏感. 重要程度:3/10 需要理解的…
框架基础之Hibernate简介 1.什么是Hibernate? Hibernate是一个开发源代码的对象关系映射框架,它对JDBC进行非常轻量级的对象封装,使得程序员可以随心所欲地使用对象编程思维来操纵数据库.Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序中使用,也可以在Servlet或JSP的Web应用中. 总之,可以简单的理解为Hibernate是基于JDBC技术基础上衍生而来,并在此基础上使得由原来直接操纵数据库变成直接操作映射数据表后生成的Java类,…
内容目录: 路由系统 模板引擎 cookie 加密cookie 自定义api 自定义session 自定义form表单验证 异步非阻塞 web聊天室实例 路由系统 路由系统其实就是 url 和 类 的对应关系,这里不同于其他框架,其他很多框架均是 url 对应 函数,Tornado中每个url对应的是一个类. 具有以下特性: a.原生支持restful b.支持二级域名方式 #默认为www.jabe.com application = tornado.web.Application([ (r"/…
一.程序设计 1.设计功能系统——数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理——原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的特性——PHP框架的差异和优缺点 三.算法与数据结构 1.常见算法——算法的概念.时间复杂度和空间复杂度.常见排序算法.常见查找算法 2.常见数据结构——数组.链表.栈.队列.树.集合.字典.图 3.逻辑思维能力 4.对PHP内置函数熟悉的程度.字符串和数组的处理能力 四.高并发解决方案 1.高并发…
web框架的本质其实就是socket服务端再加上业务逻辑处理, 比如像是Tornado这样的框架. 有一些框架则只包含业务逻辑处理, 例如Django, bottle, flask这些框架, 它们的使用需要依赖包含socket的第三方模块(即 wsgiref)来运行 在python中常见的web框架构建模式有以下两种: MVC框架:Models 数据相关操作Views 模板html文件Controllers 业务逻辑 mvc类似于抽象工厂设计模式,确认了架构以后才考虑应用设计模式, 三层架构大于…
目录:Tornado其他篇 01: tornado基础篇 02: tornado进阶篇 03: 自定义异步非阻塞tornado框架 04: 打开tornado源码剖析处理过程 目录: 1.1 源码 1.2 tornado框架核心代码分析(Snow类注释) 1.3 剖析Future()对象 实现异步非阻塞原理 1.4 自定义框架使用 1.1 源码返回顶部 1. Python的Web框架中Tornado以异步非阻塞而闻名.本篇将使用200行代码完成一个微型异步非阻塞Web框架:Snow. 2. 本文…
Tornado 是由 Facebook 开源的一个服务器“套装”,适合于做 python 的 web 或者使用其本身提供的可扩展的功能,完成了不完整的 wsgi 协议,可用于做快速的 web 开发,封装了 epoll 性能较好.文章主要以分析 tornado 的网络部分即异步事件处理与上层的 IOstream 类提供的异步IO,其他的模块如 web 的 tornado.web 以后慢慢留作分析. 下面开始我们的 Tornado 之旅,看源代码之前必定需要有一份源码了,大家可以去官网下载一份.这里…
1.Tornado Tornado:python编写的web服务器兼web应用框架 1.1.Tornado的优势 轻量级web框架异步非阻塞IO处理方式出色的抗负载能力优异的处理性能,不依赖多进程/多线程,一定程度上解决C10K问题WSGI全栈替代产品,推荐同时使用其web框架和HTTP服务器 1.2.Tornado VS DjangoDjango:重量级web框架,功能大而全,注重高效开发 内置管理后台 内置封装完善的ORM操作 session功能 后台管理 缺陷:高耦合Tornado:轻量级…
手写SQL复用性不高,SQL越复杂越容易出bug,而且容易引起SQL注入,所以现在Ibanez使用orm框架将数据库映射为数据模型,这是使用SQLAlchemy 准备工作,安装SQLAlchemy和PyMySQL:pip install sqlalchemy.pip install pymsql 创建一个数据库 通过sqlalchemy连接数据库 from sqlalchemy import create_engine # 数据库信息host = '127.0.0.1'port = '3306'…
Hibernatel框架基础使用 1.简介 1.1.Hibernate框架由来 Struts:基于MVC模式的应用层框架技术 Hibernate:基于持久层的框架(数据访问层使用)! Spring:创建对象处理对象的依赖关系以及框架整合 对于数据访问层(Dao)的代码,有好几种方式可以实现: 操作xml数据 使用JDBC技术. 原始的jdbc技术,使用Connection/Statement/ResultSet对象 自定义一个持久层框架,封装了dao的通用方法 DBUtils组件,轻量级的dao…
Struts2框架基础 1.Java的框架 1.1.框架简介 在大型项目开发过程中,经常会使用到一些框架,这样做好的好处是能够提高工作效率,在java中最常用的的框架就是SSH,这其实是三个框架的简称. java web的开发也是遵循着MVC模式,从jsp代表的视图层,到servlet代表的控制层,service代码的逻辑层和dao代表的数据库层,通过一些框架,使其能够提供更加快捷的开发 框架在软件中其实就是一种半成品,有些功能已经实现了,这样,当我们的项目开发建立在框架上时,就可以提高开发效率…
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方法) 2.匿名对象永远不可能是同一个对象 匿名对象的好处:书写简单 例:new Person().name = " 小红": 1.3匿名对象的使用场景: 1.如果一个对象需要调用一个方法一次的时候,就可以用匿名对象来调用 2.可以做为实际参数在方法中调用 二.构造方法 2.1概念: 在ja…
  javascript基础06 splice var del_arr = del.splice(0,2); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素 splice方法有添加.删除.替换的功能,它有三个参数,第一个是位置,第二个是删除多少个,第三个是添加的东西. String 对象 String 对象用来处理文本. 事实上任何一个字符串常量都是一个String对象,可以将其直接作为对象来使用. 获得字符串长度:length 提取字符…
1.本例采用postgresql数据库,创建数据表 user_tbl ),signup_date date); 2.webapi接口 (1)tornado框架配置 t_tornado.py #-*- coding:UTF-8 -*- import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define,options…
SQLAlchemy 0.7     postgersql  9.0 SQLAlchemy连接数据库有两种方法,一种是classic,一种是modern 1,modern方法 from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String from sqlalchemy.orm im…
内容目录: JSONP应用 瀑布流布局 组合搜索 多级评论 tornado框架简介 JSONP应用 由于浏览器存在同源策略机制,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性. 特别的:由于同源策略是浏览器的限制,所以请求的发送和响应是可以进行,只不过浏览器不接受罢了. 浏览器同源策略并不是对所有的请求均制约: 制约: XmlHttpRequest 不制约(不生效)的标签: img.iframe.script等具有src属性的标签 JSONP(JSONP - JSON w…
ThinkPHP 一.php框架基础介绍 真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目) 问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员…
-------------------简介------------------- 1.概念:     Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架在2009年9月以开源软件形式开放给大众.   2.特点:     1.作为Web框架,是一个轻量级的Web框架,类似于另一个Python web框架Web.py,其拥有异步非阻塞IO的…