Python web后端开发框架 Django 、Flask、Tornado

article/2025/10/9 23:58:37

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

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

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

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

1、Python总体架构


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

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

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

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

常用标准库

Python <wbr>web后端开发框架 <wbr>Django <wbr>、Flask、Tornado
下面是在逛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)])
递归实现 使用缓存后 效率便会极大提升

http://chatgpt.dhexx.cn/article/XlOEi1EA.shtml

相关文章

Web后端框架Springboot创建和基础讲解(一)

Springboot是一款底层由java编写的web后端框架&#xff0c;前身是spring框架&#xff0c;相较于前身框架而言&#xff0c;继承了其良好的兼容性以及扩展性&#xff0c;并且舍弃了大量繁杂的xml文件&#xff0c;将其改为依赖注入spirngboot框架的容器中&#xff0c;节省了工作者…

Web后端开发知识点整理

Web后端开发知识点整理 九大内置对象 1:为了方便开发者而在jsp页面加载完毕时而自动创建的内置对象 内置对象名 类型 request HttpServletRequest response HttpServletResponse config ServletConfig application ServletContext sessi…

wed后端和java的区别_web前端和web后端的区别详细分析

原标题&#xff1a;web前端和web后端的区别详细分析 在刚开始从事web开发时&#xff0c;首先要选准学习方向&#xff0c;看是想从事前端部分还是后端程序部分。当然在工作的后期&#xff0c;就不会分的那么细致了。做前端到后期也会懂一些后端的技术&#xff0c;反之&#xff0…

web搭建服务器端+创建web后端项目详细步骤

一、搭建服务器端 Web服务器&#xff1a;用于响应来自Web客户端&#xff08;如浏览器、移动应用程序等&#xff09;的请求并提供Web页面和其他Web资源的软件程序或计算机系统。它允许用户在Web浏览器中输入网址&#xff0c;通过HTTP协议向服务器发送请求&#xff0c;并收到Web页…

我的 Java/C# web 后端开发技术选择

简单介绍一下&#xff0c;我的 Java/C# web 后端开发技术选择。与网上一般人所用&#xff0c;大不相同。 先来一个表格&#xff0c;以下是我常用的Java/C# web 后端开发技术&#xff1a; 我常用的Java/C# web 后端开发技术 技术分类Java webC# web数据库bonecp,commons-dbcp,co…

php后端技术 有哪些,web后端开发技术有哪些 ?

如果你想要从事web后端开发的工作&#xff0c;那么你就需要了解web后端技术有哪些&#xff1f;并且要学习掌握这些web后端开发技术。下面我们就给大家介绍有哪些web后端技术。 web后端开发技术&#xff1a; 1、脚本语言基础。主流的后端脚本语言有php、 java 、 python、C、C等…

web后端开发php,web后端开发主要做什么?

应用程序或web服务可以分为两大部分:前端和后端。从这些名字可以猜出他们的角色。前端是你可以“看到”的部分。它是让你与应用程序或服务交互的部分。颜色、动画、布局以及所有其他增加你使用应用或网站体验的酷东西就是前端。前端通常称为用户界面(UI)。后端是你看不到的部分…

Web后端基础知识

文章目录 前言一、web基础知识1.web开发使用java的优势2.web前后端分离有什么好处&#xff1f;谈一下各自的职责。3.POJO和Java Bean&#xff1f;4.Tomcat容器(应用服务器)谈一下&#xff1f;5.Servlet谈一下&#xff1f;6.Servlet的生命周期谈一下&#xff1f;7.Servlet的三大…

web后端(javaWeb)

文章目录 1.javaweb简介2.XML3.Tomcat服务器4.Servlet15.1协议互联网通信模型5.2HTTP6.servlet27.JDBC8.JSP9.JSP中的文件下载和上传10.请求重定向和请求转发的区别11.Cookie 和 Session12.谷歌验证码的使用13.Filter过滤器14.ThreadLocal 的使用15.JSON和Ajax请求15.1JSON 在 …

GIMP基本功能和教程!

以剪贴板为内容创建一个工作布&#xff1a;SHIFT CTRL &#xff36; 或者&#xff1a;File -> Create ->From Clipboard 取消选择&#xff1a;SHIFT CTRL A 或者&#xff1a;Select -> None 反选&#xff08;选补集&#xff09;&#xff1a;CTRL I 或者&#xff…

GIMP教程 4 图层

图层可以说是现代制图软件的精髓&#xff0c;也是最根本地区别于纸质制图的地方。 GIMP呼出图层窗口的方法也很简单 点击【窗口----可停靠对话框----图层】 或者直接使用快捷键 ctrlL 便可呼出图层窗口 剩下的&#xff0c;就跟所有其它制图软件一样了。 还有问题可联系作者…

GIMP教程 5 选择

选择的意义在于限制作用范围&#xff0c;即&#xff0c;使所有操作只对选择部分有效&#xff0c; 不会“误伤”未选择部分。 gimp提供了多种选择工具&#xff0c;参见工具箱前几个按钮&#xff0c; 或者 【工具----选择工具】中按钮列表。 使用左键拖出选择范围&#xff0c…

教程:GIMP中怎样移动选区

教程&#xff1a;GIMP中怎样移动选区 更新历史 20190421&#xff1a; 首次发布 在GIMP中&#xff0c;一个常用的操作就是&#xff1a;选中某图层中的一块区域&#xff0c;然后对其进行移动。以下为教程。 注&#xff1a;完成以下教程时&#xff0c;使用的软件版本为 GIMP 2.10…

教程:GIMP中改变画布大小

教程&#xff1a;GIMP中改变画布大小 更新历史 20190428&#xff1a; 首次发布 在GIMP中&#xff0c;一个常用的操作就是&#xff1a;需要在不做缩放的情况下对图像进行扩展(或裁剪)&#xff0c;即将画布增大(或缩小)。以下为教程。 注&#xff1a;完成以下教程时&#xff0c;…

gimp 抠图_gimp软件如何实现抠图?

抠图伴随着很多从事图片处理工作的朋友&#xff0c;能够实现抠图效果的软件有很多&#xff0c;但是能够很快速的达到效果的软件我觉得还是gimp最简单&#xff0c;下面我们可以看看GIMP软件使用前景选择工具实现抠图效果的详细步骤技巧。 GIMP软件实现抠图效果的详细步骤技巧&am…

使用GIMP抠图

文章目录 使用GIMP进行抠图&#xff0c;然后再使用一些工具例如python库PIL进行paste&#xff0c;这样就可以实现数据增广。 下面详细说一下步骤&#xff1a; 1、在GIMP软件中打开图片&#xff1b; 如图&#xff0c; 2、比如把上图中的银行卡给抠下来&#xff0c;可以长按 ctr…

GIMP 教程:如何在 GIMP 中创建曲线文本

当你在 GIMP 中制作一个徽章、海报或其它任何作品时&#xff0c;你需要扭曲或弯曲一些文本。多功能的GIMP工具提供了一些创建弯曲文本的方法。取决于你将如何使用它和你想给予文本的弧度&#xff0c;有一些适合不同情况的方法。 在本篇教程中&#xff0c;我将向你展示我最喜欢…

GIMP教程 3 扭曲变换工具 (瘦脸 瘦腿)

这个功能在ps里叫液化&#xff0c;在gimp里叫扭曲变换。 将鼠标切换为扭曲变换工具的方法有以下几种&#xff1a; 方法1&#xff1a; 点击【窗口----新建工具箱】&#xff0c;快捷键是 ctrlB &#xff0c;呼出工具箱菜单 点击 扭曲变换&#xff0c;鼠标就切换成扭曲变换工具…

【GIMP教程探索系列】GIMP将照片修改为符合要求的证件照吗,修改尺寸与像素,压缩图像大小

【GIMP教程探索系列】GIMP将照片修改为符合要求的证件照吗&#xff0c;修改尺寸与像素&#xff0c;压缩图像大小 对于图片的处理&#xff0c;笔者推荐使用开源软件GIMP&#xff0c;由于其强大的功能可以几乎实现所有的高级图片的操作处理&#xff0c;以及其开源的特性&#xf…

GIMP教程 1 图片剪裁

为啥要写这篇教程呢&#xff1f;肯定有人会这样问。 photoshop个人版一年都大几千rmb&#xff0c;这个价格对轻度使用者实在不友好&#xff0c; 而用盗版可能牵扯法律问题&#xff0c;所以还是转向开源免费的GIMP吧。 笔者在网上搜了GIMP的教程&#xff0c;中文教程寥寥无几…