您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
Python web后端开发框架 Django 、Flask、Tornado
 
作者: cainiaomama520
  3152  次浏览      16
 2020-2-27
 
编辑推荐:
本文给大家讲解Python总体架构,Django,Falsk轻量级Web框架,Tornado两大核心模块,希望对大家有帮助。
本文来自于csdn,由火龙果软件Delores编辑,推荐。

深入学习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每天的鸡汤: 编程之久除了算法和数据结构,什么也不属于我们。 编程就是算法和数据结构,算法和数据结构是编程的灵魂。 算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。 真的不知道开发者还剩下什么,当机器可以自己优化数据结构与算法,也许我们就真的只剩下灵魂了。

斐波那契数列(Fibonacci sequence)Python实现的三种方案:列表 递归 生成器

# -*- coding: utf-8 -*-
import itertools
from functools import lru_cache

# 列表实现。生成一个斐波那契数列列表

def fibo(num):
fibo_list = []
if num <= 0:
return fibo_list
else:
x, y = 0, 1
for i in range(num):
fibo_list.append(y)
x, y = y, x + y
return fibo_list

# 生成器实现。迭代时一次生成一个值

def fibo_genetator():
x, y = 0, 1
while True:
yield y
x, y = y, x + y

# 递归实现。[添加缓存装饰器,提高效率]

@lru_cache(maxsize=None)
def fibo_recursive(num):
if num < 0:
return 0
if num <= 1:
return num
return fibo_recursive(num - 1)
+ fibo_recursive(num - 2)
print(fibo(10))
print(list(itertools.islice
(fibo_genetator(), 10)))
print([fibo_recursive(i)
for i in range(1, 11)])

递归实现 使用缓存后 效率便会极大提升

 
   
3152 次浏览       16
相关文章

手机软件测试用例设计实践
手机客户端UI测试分析
iPhone消息推送机制实现与探讨
Android手机开发(一)
相关文档

Android_UI官方设计教程
手机开发平台介绍
android拍照及上传功能
Android讲义智能手机开发
相关课程

Android高级移动应用程序
Android系统开发
Android应用开发
手机软件测试