深入学习Python ,用Django做Web后端开发
现在Python的用途愈来愈广,服务器、Web、游戏、爬虫、数据分析 以及人工智能 学习之路还很长

技术之路 不能回头 陷进去  就出不来 就跟恋爱一般,
学习中、项目中 印象笔记、有道云笔记、Onenote都记了好多
有朋友说,记的笔记一直放在那里会发霉、会忘记;
写写博客、偶尔自己看看、记录自己的成长、同时也算一种分享

Python属于 面向对象 解释型 高级动态计算机程序设计语言

了解一门语言 当先了解它的整体架构、基本语法、内置数据结构、内置函数、标准库以及运行模式、编程模式等。

1、Python总体架构

Python的整体架构可以分为主要三个部分:

左边是 Python提供的内置模块 库 及用户自定义模块

右边是Python的运行环境,包括对象/类型系统、内存分配器、运行状态信息

中间是Python的核心 解释器。Python运行时的数据流  词法分析、语法分析、编译、执行

常用标准库


下面是在逛CSDN每天都被灌的鸡汤,总结一下缺养时可以补补:
    
    编程之久除了算法和数据结构,什么也不属于我们。
    编程就是算法和数据结构,算法和数据结构是编程的灵魂。
    编程中最没用的东西是源代码,最有用的东西是算法和数据结构。
    算法和数据结构是程序的第一秘诀,缺之算法和数据结构是编程的最大原因。
    算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。

尽管少写那么多代码,但省下来的时间又在哪里呢?
    代码是程序员的朋友,虽然没有热情,但是非常忠实。
    当你还不能写出自己满意的程序时,你就不要去睡觉。
    有些代码不应该被忘记,也没有源代码不应该被记住。
    对代码不满足,是任何真正有天才的程序员的根本特征。
    有编过程的人的代码,比那些无知的人使用的软件更有价值。
    编程是一种美德,是促使一个人不断向上发展的一种原动力。
    程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上。
    程序员之所以犯错误,不是因为他们不懂,而是因为他们自以为什么都懂。
    调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。
    假如编程易懂得,那么程序员就不会热情地写出注释,也不会有得到编程的快乐。
    代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你

由于Python的简洁 易读 强大 高效  现在Python应用在文件处理、网络编程、数据库编程、游戏、Web开发、数据分析、机器学习等各个领域。

就Web开发而言,为了提高开发效率,应运而生了很多框架,如Django、Flask、Tornado、Web2py等。

框架很多,根据业务需求、选择适合的框架。

1、Django

最早接触Django,在我心中的形象是:Web框架界的变形金刚

Django的MVT架构、自带ORM、强大的Admin后台管理、自带数据库、还自带开发测试用的服务器、不得不说服务周到。

如此大而全,重量级的Django给开发者提供了超高的开发效率。

淌着Python血液

MVT三大轮子 连接浏览器 数据库开跑

一身装备 可变形 可扩展

多领域 跨平台 协调作战

自我测试 自我管理 自我保护

友好 开放 国际化

装备很多:

用户认证 缓存 日志 邮件 组织 分页 消息 序列化 会话 网站地图 静态文件处理 数据验证

Django支持第三方扩展:

比如:富文本编辑器  缓存 全文检索  celery等

Django项目布署 用nginx做静态资源代理、负载均衡 可以提高高并发能力。

一些Web项目开发 无论用户量、服务群体、上来总谈高并发。没用户 天天愁高并发问题 还没解决也许项目已经黄了。

项目有了、业务有了、用户有了、性能优化、高并发顺势解决嘛。

当然一些大型网站,在高性能的要求下,框架的各个部分往往都需要自己定制,这样用Django也就没有太大优势。

2、Falsk

相较于Django ,Falsk属于轻量级Web框架,也称‘microframework’。

Flask一个简单的核心,基于Werkzeug WSGI工具箱和Jinja2 模板引擎。其他功能开发者根据业务需求 与喜好 添加。

如此 Falsk 自由、灵活、可扩展性很强。很适用于开发小型应用、开发大型网站也没有压力,自己设计架构、选择合适第三方扩展,各方面性能完全不输Django。

常用拓展包:wtf、sqlalchemy、login、script、migrate、mail

3、Tornado

传说中实现高并发、高性能的框架。Tornado的全称是Torado Web Server,可用作Web服务器,同时也是一个Python Web的开发框架。

Tornado两大核心模块:

iostream :对非阻塞式的 socket 的简单封装,用来处理 socket 的异步读写

ioloop :核心的 I/O 循环。基于 epoll,可以高效的响应网络事

其作为Web框架的主要模块

web:包含了 Tornado 的大多数重要的功能
escape :XHTML, JSON, URL 的编码/解码方法
template :基于 Python 的 web 模板系统

httpserver : 非阻塞 HTTP server
httpclient : 异步 HTTP client 用来和web 及 httpserver 协同工作
auth :第三方认证的实现
locale:针对本地化和翻译的支持
等等

Tornado 走的少而精的路子,除了Web开发需要的基本模块,剩下的则都需要开发者自己扩展。比如需要ORM支持,那自己来扩展

Python web框架很多,在于精通。选择适合自己的,开始搞起来。

我做项目用的多的还是Django,不自己重复造车轮子嘛。

题外话:

目前有一些公司选择Go语言 做所谓的高性能的开发

Go语言 号称可解决现今多核心处理器这一大挑战。
Go语言 专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

语言皆是工具

框架提高效率的工具

套用CSDN每天的鸡汤:

编程之久除了算法和数据结构,什么也不属于我们。

编程就是算法和数据结构,算法和数据结构是编程的灵魂。
算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。

真的不知道开发者还剩下什么,当机器可以自己优化数据结构与算法,也许我们就真的只剩下灵魂了。

Flask/Tornado/Django的更多相关文章

  1. 详说Flask、Django、Pyramid三大主流 Web 框架

    前言 目前随着 Python 在大数据.云计算.人工智能方面的热度,Python Web 应该也会被更多企业了解使用. Python Web 框架千万种,没必要都去了解和学习,身边总有人说高手都用 F ...

  2. Flask, Tornado, GEvent, 以及它们的结合的性能比较

    Flask, Tornado, GEvent, 以及它们的结合的性能比较 英文: http://blog.wensheng.com/2011/10/performance-of-flask-torna ...

  3. 如何理解Nginx, WSGI, Flask(Django)之间的关系

    如何理解Nginx, WSGI, Flask(Django)之间的关系 值得指出的是,WSGI 是一种协议,需要区分几个相近的名词: uwsgi 同 wsgi 一样也是一种协议,uWSGI服务器正是使 ...

  4. Flask 和 Django 框架的区别

    1)Flask Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过 Flask自由.灵活,可扩展性强,第三方库的选 ...

  5. Flask与Django哪个更好更实用呢?砖家是这么认为的

        这一周我打算做一个 Flask 教程.本文先把 Flask 和 Django 做一个比对,因为我对这两个 Python Web 框架都有实际的开发经验.希望我可以帮助您选择学习哪个框架,因为学 ...

  6. Flask与Django的比较

    Flask与Django的区别 Flask Flask确实很"轻",不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过 ...

  7. tornado django flask 跨域解决办法(cors)

    XMLHttpRequest cannot load http://www.baidu.com. No 'Access-Control-Allow-Origin' header is present ...

  8. web框架们~Django~Flask~Tornado

    1.web框架本质 2.Django 3.Flask 4.Tornado

  9. Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...

随机推荐

  1. 如何在一台电脑上同时使用Gitee(码云)和Github?

    前言 最近重装了一下系统,用上了 win10,之前电脑上的开发环境和配置都被清除了,由于工作原因我需要经常使用 Gitee(码云)和 Github ,之前配置好了一个,但是不知道怎么同时配置两个,所以 ...

  2. 如何使用 CODING 实践 DevOps 全流程

    你好,欢迎使用 CODING!这份最佳实践将帮助你通过 CODING 研发管理系统来更好地实践 DevOps 流程. DevOps 的本质是打破各个部门之间的隔阂,打通企业的前中后台,推进跨部门协作. ...

  3. windows系统下压缩文件成tar.gz格式的方法

    tar.gz 是linux和unix下面比较常用的格式,几个命令就可以把文件压缩打包成tar.gz格式,然而这种格式在windows并不多见,WinRAR.WinZip等主流压缩工具可以释放解开,却不 ...

  4. mysql操作进阶

    # ### part1 单表查询# sql 查询语句的完整语法 ''' select .. from .. where .. group by .. having .. order by .. lim ...

  5. Web安全测试学习笔记-DVWA-SQL注入-2

    接上一篇SQL注入的学习笔记,上一篇我通过报错信息得知后台数据库是MySQL(这个信息非常重要~),然后通过SQL注入拿到了用户表的所有行,其实我们还可以通过MySQL的特性来拿更多的信息. 1. 获 ...

  6. 用深度学习做命名实体识别(二):文本标注工具brat

    本篇文章,将带你一步步的安装文本标注工具brat. brat是一个文本标注工具,可以标注实体,事件.关系.属性等,只支持在linux下安装,其使用需要webserver,官方给出的教程使用的是Apac ...

  7. [Spring cloud 一步步实现广告系统] 12. 广告索引介绍

    索引设计介绍 在我们广告系统中,为了我们能更快的拿到我们想要的广告数据,我们需要对广告数据添加类似于数据库index一样的索引结构,分两大类:正向索引和倒排索引. 正向索引 通过唯一键/主键生成与对象 ...

  8. go-爬图片

    go语言爬取图片 注:动态加载出来的爬取不到,或怕取出来图片出错,代码中的网页是可以正常爬取的 package main import ( "fmt" "io" ...

  9. js 轮播图效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. Abp小知识-如何全局设置DontWrapResult属性

    demo地址 GitHub相关demo地址:https://github.com/PuzzledAlien/DotNetCore_Practice/tree/master/ABP.Demo/WebAp ...