Python中如何选择Web开发框架?

Python入门实战:Web开发与框架选择 1.背景介绍 Python作为一种高级、通用且广泛使用的编程语言,在数据分析、机器学习、web开发、游戏编程等领域都有非常广泛的应用。近年来,越来越多的人开始关注并尝试使用Python进行Web开发和后端开发,这无疑是对其强劲的推动。本文将从以下三个方面出发,帮助读者快速了解和上手Python Web开发: ①Web开发概述:包括Web开 阅读详情

Python开发中Web框架可谓是百花齐放,各式各样的web框架层出不穷,那么对于需要进行Python开发的我们来说,如何选择web框架也就变成了一门学问了。本篇文章主要是介绍目前一些比较有特点受欢迎的Web框架,我们可以根据各个Web框架的特性进行选择应用。

image.png

Django

Django是市面上比较大而全的一个系列Web开发框架。Django官网上的介绍是:Django 可以更轻松地以更少的代码更快地构建更好的 Web 应用程序。它提供了一站式的web应用框架解决方案。如实现了缓存、ORM、权限验证、管理后台、插件扩展等多项功能。发展到现在,我更愿意认为Django是一个功能强大的Python CMS系统。

image.png

我们可以通过一个django项目来简单了解下Django项目:

$ pip install django
$ django-admin startproject djdemo                                                   
 cd djdemo                                                                                                                               
$ django-admin startapp djapp                                                   
$ tree -L 3             
.
├── djapp
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── djdemo
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-37.pyc
│   │   └── settings.cpython-37.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

Flask

Flask是一个轻量级的Web应用框架,它本身不包含任何模块,却又支持扩展所有需要的内容,秉承着需要多少用多少的理念,是一个不可多得的Python Web框架。而且Flask的开发生态也是欣欣向荣,各种组件均可在社区找到对应的实现工具包。

image.png

当我们创建一个Flask框架应用后,我们可以通过下面的代码来启动一个简单的flask程序:

from flask import Flask        # 导入Flask类
 
app = Flask(__name__)          # 实例化Flask类
 
@app.route('/func')            # 编写视图函数及配置路由
def func():
    return '这是Flask框架'
 
if __name__ == '__main__':     # 启动服务
    app.run()

Pyramid

Pyramid 是一个小巧、快速、实用的开源 Python Web 框架。它使现实世界的 Web 应用程序开发和部署更有趣、更可预测且更高效。它是 Pylons Project 的一部分。采用的授权协议是 BSD-like license。Pyramid在国内的知名度并不高,其框架代码量和flask差不多,但是性能却比Flask高很多。

image.png

示例代码:

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response

def hello_world(request):
    return Response('Hello World!')

if __name__ == '__main__':
    with Configurator() as config:
        config.add_route('hello', '/')
        config.add_view(hello_world, route_name='hello')
        app = config.make_wsgi_app()
    server = make_server('0.0.0.0', 6543, app)
    server.serve_forever()

Bottle

Bottle 是一个用于 Python 的快速、简单和轻量级的 WSGI 微型网络框架。它的特点是单文件,代码只使用了Python标准库,而不需要额外依赖其他第三方库。可以说Bottle完美的发挥了“极简主义”风格,好处是显著的,它让我们的项目尽可能的小,但是弊端也是毋庸置疑的,过少的功能支持导致稍微大点的系统就需要自己去开发添加功能。

image.png

示例代码参考:

from bottle import route, request, run
 
@route('/hello', method=['GET', 'POST'])
def dh():     
  return 'hello ' + request.query.str
 
if __name__ == "__main__":
  run(host='0.0.0.0', port=8080)

Tornado

Tornado最初是由FriendFeed开发的非阻塞式Web服务器。由于是非阻塞式服务器,所以它的访问加载速度比较快,Tornado可以支持每秒数千计的连接。对于长轮询、WebSocket等实时性web服务来说,Tornado是一个理想的Web框架。

image.png

示例代码:```
import asyncio

import tornado.web

class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(“Hello, world”)

def make_app():
return tornado.web.Application([
(r"/", MainHandler),
])

async def main():
app = make_app()
app.listen(8888)
await asyncio.Event().wait()

if name == “main”:
asyncio.run(main())


### Web.py

[Web.py](https://link.juejin.cn/?target=https%3A%2F%2Fwebpy.org%2F "https://webpy.org/")是由`Reddit`联合创始人、`RSS`规格合作创作人、著名黑客`Aaron Swartz`开发。`Web.py`使用基于类的视图,可以轻松创建动态网站和强大的互联网应用程序。它提供 `SQL/JDBC` 作为其数据库接口,包括对 `Google App Engine` 的支持,以及为初学者和专家设计的文档齐全、正确且清晰的界面。

\*\*`web2py`\*\*被定义为一个用于敏捷开发的免费开源`Web`框架,涉及数据库驱动的`Web`应用程序。它是用`Python`编写和编程的。它是一个完整的堆栈框架,由开发人员创建功能齐全的`Web`应用程序所需的所有必要组件组成。

![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/07d958b984ef4b27a2ae45731852dcfd~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp?)

### Quixote

`Quixote` 是一个使用 `Python` 编写基于 `Web` 的应用程序的框架。它的目标是按此顺序实现灵活性和高性能。`Quixote` 应用程序的结构往往类似于传统应用程序。格式化网页的逻辑由 `Python` 类和函数组成。`Quixote` 不强制分离表示逻辑和 “后端” 逻辑。相反,我们鼓励您使用传统技术。例如,一种解决方案是将表示逻辑放在其自己的子包中。

`Quixote`使用的是目录式的`URL`分发规则,使用`python`来编写模板。`PTL`模板更适合程序员,但并不适合美工参与前端代码的编写和修改,且`Quixote`的更新频率较低、社区活跃度不够,所以并不建议在生产环境选用`Quixote`作为`web`开发框架。

### Sanic

[Sanic](https://link.juejin.cn/?target=https%3A%2F%2Fwww.enjoytoday.cn%2F2022%2F10%2F12%2Fpython-sanic-%25e4%25bd%25bf%25e7%2594%25a8%25e5%25bc%2580%25e5%258f%2591%25e6%258c%2587%25e5%258d%2597%2F "https://www.enjoytoday.cn/2022/10/12/python-sanic-%e4%bd%bf%e7%94%a8%e5%bc%80%e5%8f%91%e6%8c%87%e5%8d%97/") 是一个 `Python 3.6+ web` 服务器和web框架,它的编写速度很快,号称 Python 中性能最高的异步 Web 框架。它允许使用`python 3.5`中添加的 `async/await` 语法,这使得您的代码不阻塞,速度更快。`Sanic`参考了`Flask`的设计思想,这使得习惯于使用`Flask`开发的程序员能更快的适应`Sanic`的开发。

![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5a9e8fd312ec4eba8641c9b69a898d3b~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp?)

代码示例:

from sanic import Sanic
from sanic.response import json

app = Sanic(“hello_example”)

@app.route(“/”)
async def test(request):
return json({“hello”: “world”})

if name == “main”:
app.run(host=“0.0.0.0”, port=8000)


  


<center><B>---------------------------END---------------------------



## 题外话



![在这里插入图片描述](https://img-blog.csdnimg.cn/cb9eaa37ce994535bdf60e07ba4cf09e.jpeg#pic_center)

<font face="幼圆" size="4" color="red">感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
</font>

👉<font color = red>优快云大礼包:gift::</font>[全网最全《Python学习资料》免费赠送:free:!](https://blog.youkuaiyun.com/weixin_68789096/article/details/132275547?spm=1001.2014.3001.5502)<font color=#66cc66>(安全链接,放心点击)</font>



**一、Python所有方向的学习路线**

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

![img](https://img-blog.csdnimg.cn/1d40facda2b84990b8e1743f5487d455.png)
 ![img](https://img-blog.csdnimg.cn/0fc11d4a31bd431dbf124f67f1749046.png)



**二、Python必备开发工具**

工具都帮大家整理好了,安装就可直接上手!![img](https://img-blog.csdnimg.cn/ff266f529c6a46c4bc28e5f895dec647.gif#pic_center)

**三、最新Python学习笔记**

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

 ![img](https://img-blog.csdnimg.cn/6d414e9f494742db8bcc3fa312200539.png)



**四、Python视频合集**

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

![img](https://img-blog.csdnimg.cn/a806d9b941c645858c61d161aec43789.png)

**五、实战案例**

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

![img](https://img-blog.csdnimg.cn/a353983317b14d3c8856824a0d6186c1.png)

 **六、面试宝典**

![在这里插入图片描述](https://img-blog.csdnimg.cn/97c454a3e5b4439b8600b50011cc8fe4.png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/111f5462e7df433b981dc2430bb9ad39.png)

##### **简历模板**![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)

👉<font color = red>优快云大礼包:gift::</font>[全网最全《Python学习资料》免费赠送:free:!](https://blog.youkuaiyun.com/weixin_68789096/article/details/132275547?spm=1001.2014.3001.5502)<font color=#66cc66>(安全链接,放心点击)</font>

若有侵权,请联系删除
Python Web开发中最佳的单元测试框架选择 unittest是Python标准库中的单元测试框架,具有强大的功能和广泛的应用。无论选择哪个框架,编写良好的测试用例是关键。通过使用合适的单元测试框架,你可以更好地组织、运行和管理测试用例,提高开发效率和代码质量。pytest是另一个流行的Python单元测试框架,它提供了更简洁、灵活的语法和功能。Django测试框架提供了一组用于编写和运行测试用例的类和方法,可以方便地测试视图、模型、表单等各个组件。它提供了一组用于编写和运行测试用例的类和方法,支持测试套件的组织和执行,以及丰富的断言方法。 阅读详情

相关推荐

Vision-Language Navigation - Windows环境下编译安装Matterport3D Simulator仿真器(三)

目录1 编译 Matterport3D Simulator 源码1.1 源码下载1.2 编译 1 编译 Matterport3D Simulator 源码   在 Windows 下编译 Matterport3D Simulator 稍微有些不方便,需要对 CMakeLists.txt 进行一些修改,如果有更好的方法欢迎大家评论。 1.1 源码下载   还是直接在 Github 上搜索 Matterport3D Simulator 的 repo,下载源码。如果用 zip 方式,那么直接在下即可。如果使用

weixin_44110393的博客 4846

在Web开发中如何选择合适的Python框架

在Web开发中,选择合适的Python框架是一个重要的决策,它直接影响到项目的开发效率、维护成本以及最终产品的性能和可扩展性。

Flask Web 881

核函数——原理剖析

(Kernel Function)是机器学习和统计学中的一个重要概念,特别是在支持向量机(SVM)和其他基于核方法的算法中。核函数的主要作用是通过一个隐式的方式将数据映射到一个高维空间,从而使得在该高维空间中线性不可分的问题变得线性可分。没关系,现在让我们抛开一切无关的事情,花20分钟来认真领会一下,核函数的原理到底是什么。然后我们来说什么什么样的函数有资格称为核函数,也就是上面说的一个函数的内积矩阵是半正定矩阵。中的分布如左图所示。中是不可实现的,那如果我们将原始空间中的所有样本点,通过一个映射关系。

m0_70254540的博客 1587

python web开发框架的选择

python web开发框架的选择 python web开发框架有N多种,常有的有django,web.py,flask,Pyramid,Quixote ,Bottle,国人开发uliweb等. 一些朋友问到底选那一个呢? django-适合有丰富的程序开发和web开发经验者选用。 web.py-适合已经通过学python学会编程,还没有任何web开发经验的朋友。 f

黄哥Python专栏 1325

grafana对接zabbix数据展示

【配置】点击【模板】点击【创建模板】添加三个监控项:【名称】搜索【】创建的模板;点击上方【监控项】,点击创建【监控项】点击上方【触发器】点击【创建触发器】主机关联监控模板:左侧【配置】点击 【主机】点击【Zabbix server】查看:左侧点击【监测】点击【主机】点击【Zabbix server】点击最新数据,找到添加的三个模板主机关联监控模板:左侧【配置】点击 【主机】点击【Zabbix server】把监控模板用起来① 明确获取指标数据的方法。

2401_83883919的博客 6595

《UE4游戏开发》之 《音效系统的实现》

音效系统需要负责管理什么事情: 1.1 确定声音控制的分类:如背景音乐、技能音效、界面音效、角色配音等,不同游戏对声音有不同的分类 1.2 控制每个分类的声音的开启与关闭,以及调节每个分类声音的大小 解决如何分类: 2.1 首先需要知道ue4为声音分类提供了什么:SoundClass通常需要一个根分类【SC_RPG_Master】,便于总体控制音效,以及指定引擎默认启动的音效 打开SoundClass资产【SC_RPG_Master】,对根控制的设置,将逐级传递并按比例进行设置,以此达到控制一类声音的目的.

qq_21919621的博客 2126

Python Web开发:Flask与Django框架比较与选择

Web 开发是创建网站或 Web 应用程序的过程,主要涉及三个层面:前端、后端和数据库。前端负责用户界面的呈现,让用户与网站进行交互;后端则处理业务逻辑,比如用户认证、数据处理等;数据库用于存储和管理应用程序的数据。从技术角度来看,Web 开发基于 HTTP 协议进行通信。当用户在浏览器中输入网址并访问时,浏览器会发送一个 HTTP 请求到服务器。服务器接收到请求后,根据请求的内容进行处理,然后返回一个 HTTP 响应给浏览器。

calvin189s的博客 2594

DC竞赛 国能日新功率预测题 rank21 解决方案(适合新手)

DataCastle国能日新光伏功率预测 数据异常处 本题在测试集中提供了时间、辐照度、风速、风向、温度、压强、湿度、实发辐照度8个特征,以及标签**实际功率**。 而在训练集中只有前七个特征,无实发辐照度。 策略 在观察了数据之后,我们确定实发辐照度是一个强力特征,于是我们采取了stacking的策略: 1. 第一次训练以实发辐照度为标签,预测 测试集的实发辐照度 2....

yyhhlancelot的博客 7298

在Python中选择合适的Web开发框架

在Python中选择合适的Web开发框架非常重要,因为它将决定开发过程的顺畅程度、项目的可维护性和代码的健壮性。本文将对比几种主流的Python Web开发框架,并提供一些建议以帮助你选择合适的框架。Django是一个相对重量级的Python Web开发框架,适用于构建复杂、大型的Web应用。最后,建议在实际开发之前,尝试使用不同框架创建简单的原型,以评估哪一个框架最适合你的需求。此外,保持关注不断涌现的新框架和技术,因为它们可能会改变你的开发体验和效率。根据你的项目需求,挑选合适的框架十分关键。

高性价比服务器就选:蓝易云 461

SPSS线性混合模型实战:手把手复现一篇老年认知研究的统计结果(含代码)

本文详细介绍了如何使用SPSS线性混合效应模型复现老年认知研究的统计结果,涵盖数据准备、模型构建、结果解读及可视化全流程。特别针对重复测量数据分析,提供了SPSS菜单操作与语法编写的实用技巧,帮助研究者高效处理复杂数据并验证模型假设。

weixin_42562079的博客 518

新手也能写复杂爬虫!AI+Python自动分析京东商品,提取数据不用F12

不用F12:AI自动分析京东页面,生成选择器;不用懂JS:Playwright自动渲染动态数据;不用改代码:只需配置3个参数,复制运行就能出结果。这套方案不仅适用于京东,修改提示词后还能爬取淘宝、拼多多、亚马逊等电商网站,新手只需掌握“配置参数→运行代码→查看CSV”3步,就能轻松获取任意网站的结构化数据。未来,AI会让爬虫彻底进入“零代码、零门槛”时代,新手也能轻松搞定复杂数据爬取需求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1341

Python Web框架比较,选择对的框架让开发更便捷

Python程序员有很多很好的选择来创建Web应用程序和API;Django,Weppy,Bottle和Flask引领潮流。 如果正在开发一个Web应用程序并且已经选择使用Python作为构建它的语言,那么这是一个明智的选择。Python的开发成熟度,强大的库以及广泛的实际应用使其成为Web开发的必需。 现在是困难的部分:从众多可用的Python web框架中选择一个。它们不仅数量在不断增长,而...

老K带你学Python 1279

【docker】--- 详解 WSL2 中的 Ubuntu 和 Docker Desktop 的区别和关系!

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。

秋知叶i 1314

用python开发web不是一个好选择_10个用于Web开发的最好 Python 框架

Python 是一门动态、面向对象语言。其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性。除了语言本身的设计目的之外,Python标准 库也是值得大家称赞的,Python甚至还自带服务器。其它方面,Python拥有足够多的免费数据函数库、免费的Web网页模板系统、还有与Web服务 器进行交互的库、这些都可以设计到你的Web应用程序里面。在这篇文章里,我们将为Python W...

weixin_39682301的博客 71

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python开发web框架_选择Web框架:php,python还是node.js? 开发人员的个人感想。

python开发web框架Having spent the last 20+ years operating mostly in theCMSuniverse, the time has come for me to see what else the web development ecosystem has to offer, and what has changed in the rec...

cunchi8090的博客 611

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python中如何选择合适的Web框架进行快速开发

在选择过程中,我们需要明确项目需求、评估框架的优缺点、考虑社区支持和文档完善程度,并进行综合比较与选择。在Python中,Web框架可以分为几个主要类别:全栈框架、微框架和异步框架。Flask:Flask是一个轻量级的微框架,具有简单、灵活的特点。Django:Django是一个功能强大的全栈框架,提供了丰富的功能和强大的扩展性。学习成本:虽然选择一个熟悉的框架可以降低学习成本,但有时尝试新的框架也可能带来更好的性能和更高的效率。大型项目可能需要更完整的全栈框架,而小型项目则可以使用轻量级的微框架。

SpencerCharlotte的博客 1008

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

如何选择python web开发框架

Python有很多web框架可用。最著名的非Django莫属。最简介的python框架如web.py/flask,异步框架的Tornado等。都是比较出色的web框架。 先从Django开始吧。 Django走的是大而全的道路,集成了缓存、后台管理、session管理、用户验证等等各种常用的功能。而web.py、flask、tornado这些框架则属于比较轻量级的框架。 因此,如果想要快速的

King23的博客 1379

用python开发web不是一个好选择_10个web开发好用框架?python开发

Python 是一门动态、面向对象语言。其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性。除了语言本身的设计目的之外,Python标准库也是值得大家称赞的,Python甚至还自带服务器。其它方面,Python拥有足够多的免费数据函数库、免费的Web网页模板系统、还有与Web服务器进行交互的库、这些都可以设计到你的Web应用程序里面。在这篇文章里,我们将Python Web...

weixin_39998903的博客 88
上一篇: 为什么越来越多的 Python 开发者选择使用其他框架替代 Django?
下一篇: 嗨,各位Python程序员,放弃selenium,试试年轻的Playwright如何?
Python_P叔
博客等级 码龄3年 5454粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值