Python开发中Web框架如何选择web框架?django项目

您所在的位置:网站首页 flask异步非阻塞 Python开发中Web框架如何选择web框架?django项目

Python开发中Web框架如何选择web框架?django项目

#Python开发中Web框架如何选择web框架?django项目| 来源: 网络整理| 查看: 265

Python开发中Web框架如何选择web框架?django项目 Python开发中Web框架如何选择web框架?django项目 2023-01-04

Python开发中的Web框架可谓是百花齐放,各种Web框架层出不穷,所以对于需要进行Python开发的我们来说,如何选择Web框架就成了一门学问。 本文主要介绍目前流行的一些具有特点的Web框架。 我们可以根据各个web框架的特点来选择和应用。

web游戏开发框架_主流web开发框架_手机web开发框架

姜戈

Django是目前市面上比较庞大和完整的一系列web开发框架。 Django官网上的介绍是:Django makes it easier to build better web applications faster with less code。 它提供一站式的网络应用框架解决方案。 例如实现了缓存、ORM、权限验证、管理后台、插件扩展等多项功能。 到现在为止,我更倾向于认为Django是一个强大的Python CMS系统。

手机web开发框架_web游戏开发框架_主流web开发框架

我们可以通过一个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 是一个轻量级的 Web 应用程序框架。 它不包含任何模块,但支持扩展所有必需的内容。 秉承用多少用多少的理念,是不可多得的Python Web框架。 而且Flask的开发生态也很繁荣,各种组件都可以在社区找到对应的实现工具包。

主流web开发框架_手机web开发框架_web游戏开发框架

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

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

金字塔

Pyramid 是一个小巧、快速且有用的开源 Python Web 框架。 它使现实世界的 Web 应用程序开发和部署更加有趣、可预测和高效。 它是 Pylons 项目的一部分。 采用的许可协议是类 BSD 许可。 金字塔在中国并不知名。 其框架代码与flask类似,但性能却远高于Flask。

手机web开发框架_主流web开发框架_web游戏开发框架

示例代码:

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 是一个用于 Python 的快速、简单和轻量级的 WSGI 微型 Web 框架。 其特点是单一文件,代码只使用Python标准库web游戏开发框架,不额外依赖其他第三方库。 可以说,Bottle 将“极简主义”风格发挥得淋漓尽致。 好处是显着的。 它让我们的项目尽可能的小,但是缺点也是毋庸置疑的。 功能支持太少导致系统稍大,需要自己 Go 开发和添加功能。

手机web开发框架_主流web开发框架_web游戏开发框架

示例代码参考:

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 最初是由 FriendFeed 开发的非阻塞 Web 服务器。 因为是非阻塞服务器,所以访问加载速度比较快3D素材,Tornado可以支持每秒数千个连接。 对于长轮询和 WebSocket 等实时 Web 服务,Tornado 是一个理想的 Web 框架。

手机web开发框架_web游戏开发框架_主流web开发框架

示例代码:

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())

网络.py

Web.py 由 Aaron Swartz 开发web游戏开发框架,他是 Reddit 的联合创始人、RSS 规范的共同创建者和著名黑客。 Web.py 使用基于类的视图,可以轻松创建动态网站和强大的 Internet 应用程序。 它提供 SQL/JDBC 作为其数据库接口3D植物,包括对 Google App Engine 的支持,以及为初学者和专家设计的文档齐全、正确且清晰的接口。

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

手机web开发框架_主流web开发框架_web游戏开发框架

堂吉诃德

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

Quixote采用目录式的URL分发规则,使用python编写模板。 PTL模板比较适合程序员,但不适合美工参与前端代码的编写和修改,而且堂吉诃德更新频率低,社区不够活跃,所以不推荐生产环境推荐使用Quixote作为web开发框架。

萨尼奇

Sanic 是一个 Python 3.6+ 网络服务器和网络框架。 它编写速度非常快,号称是 Python 中性能最高的异步 Web 框架。 它允许使用 python 3.5 中添加的 async/await 语法,这使您的代码非阻塞且更快。 Sanic参考了Flask的设计思想,让习惯使用Flask的程序员更快的适应Sanic的开发。

手机web开发框架_web游戏开发框架_主流web开发框架

代码示例:

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)


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3