要想清楚地理解 python web 框架,首先要清楚浏览器访问服务器的过程. 用户通过浏览器浏览网站的过程: 用户浏览器(socket客户端) 3. 客户端往服务端发消息 6. 客户端接收消息 7. 关闭 网站服务器(socket服务端) 1. 启动,监听 2. 等待客户端连接 4. 服务端收消息 5. 服务端回消息 7. 关闭(一般都不会关闭) 下面,我们先写一个服务端程序,来模拟浏览器服务器访问过程. ''' 简单的web服务端示例 ''' import socket # 生成socket…
背景知识 要使用 Django,首先必须先安装 Django. 下图是 Django 官网的版本支持,我们可以看到上面有一个 LTS 存在.什么是 LTS 呢?LTS ,long-term support,也就是长期技术支持版的意思.长期技术支持版意味着资料的丰富程度和稳定性会比其他版本的要好.可以看到,目前的长期技术是 1.11,而上一个长期技术支持版是 1.8 ,我们尽量使用 1.11 长期技术支持版,因为企业在做技术选型的时候,选择的往往不是最新的,而是最稳定的. 安装 Django,打开…
上一节,我们基本了解了 Django 的一些配置,这一节,我们将通过一个简单的登录页面,进一步学习 Django 的使用. 新建项目 首先,新建一个 Django 项目,记得别弄错了哦. settings 中静态文件.templates 路径配置 这里我们已经写好了登录页面(点我下载),但是这一个登录页面不单只是一个 HTML 文件,还有一些静态文件.我们上一次已经说过了,想要在 HTML 中引进静态文件的话,需要在 settings 中配置静态文件夹.login.html 放在 templat…
CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用也就是人们所知道的钓鱼网站.尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左.XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站.与XS…
我们都知道 Python 作为一门强大的语言,能够适应快速原型和较大项目的制作,因此被广泛用于 web 应用程序的开发中. 在面试的过程中,大家或多或少都被问到过这样一个问题:一个请求从浏览器发出到数据返回都经历过哪些过程? 要回答这个问题,首先你需要对 HTTP 协议.web框架.服务器等底层知识有一定的储备量,同时需要对 web 框架和服务器之间的关联有一定的了解,这里有张图上面详细的标明它们之间的联系. 这么多 wsgi 是不是有点懵逼?看不明白没有关系,下面我会带大家顺着图片里面的顺序一…
Django Python框架虽然说是百花齐放,但仍然有那么一家是最大的,它就是Django.要说Django是Python框架里最好的,有人同意也有人 坚决反对,但说Django的文档最完善.市场占有率最高.招聘职位最多估计大家都没什么意见.Django为人所称道的地方主要有: 完美的文档,Django的成功,我觉得很大一部分原因要归功于Django近乎完美的官方文档(包括Django book). 全套的解决方案,Django象Rails一样,提供全套的解决方案(full-stack fra…
在Github上,Sanic第一句介绍语就是: "Sanic is a Flask-like Python 3.5+ web server that's written to go fast. " 到底有多Fast?有人给出这样一组对比测试结果: 这个测试结果可不可信不好说,但根据很多人的评价,Sanic在性能上确实比较强劲.尽管Sanic 被称作Flask-like,其中的坑还是很多的.性能强劲这一点非常诱人,不过性能强劲不一定就好用的. 那么?Sanic性能到底有多强劲?它和Fla…
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框架Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构.以及全功能的管理后台. Diesel:基于Greenlet的事件I/O框…
1. What is Tornado Tornado是一个轻量级但高性能的Python web框架,与还有一个流行的Python web框架Django相比.tornado不提供操作数据库的ORM接口及严格的MVC开发模式,但能够提供主要的web server功能.故它是轻量级的:它借助non-blocking and event-driven的I/O模型(epoll或kqueue)实现了一套异步网络库,故它是高性能的. Tornado的轻量级+高性能特性使得它特别适用于提供web api的场合…
Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使用起ORM,做简单的定义,就能自动生成数据库结构,全功能的管理后台)session功能缺点: template不怎么好用(来自自身的缺点)数据库用nosql不方便(来自自身的缺点)如果功能不多,容易臃肿 Tornado优点: 少而精(轻量级框架)注重性能优越,速度快解决高并发(请求处理是基于回调的非…