Django,Pyramid和Flask之间的差异。

三者间的特性

Flask是“microframework”,主要用于具有更简单要求的小型应用程序。在Flask中,您必须使用外部库。 Flask 是基于 Werkzeug,Jinja 2 的 Python 轻量级框架(microframework) Flask 的核心就是非常非常简单的。不像 Django 框架,它不会给你带来技术选择上的问题,你可以自由选择你喜欢的任何模版引擎或 ORM。即使它默认配备了 Jinja 模板引擎,你也随时可以自由选择。 在我看来,用 Flask 来编写 API 服务(RESTful rervices)是再好不过的。

Pyramid适用于大型应用程序。它提供了灵活性,并允许开发人员为他们的项目使用正确的工具。开发人员可以选择数据库,URL结构,模板样式等。 Pyramid 是一个通用的,开源的 Python web 应用开发框架 。

Django也可以像Pyramid一样用于更大的应用程序。 Django 是一个高级的 Python Web 框架( Django已经内建了模板、表单、路由、认证、基本数据库管理等等。比较起来,Pyramid包括路由和认证,但是模板和数据库管理需要额外的库。 ),支持快速开发,简洁、实用的设计。如果你正在建一个和电子商务网站相似的应用,那你应该选择用 Django 框架。它能使你快速完成工作,也不必担心太多的技术选择。它能提供从模版引擎到 ORM 所需的一切东西。用 Django 构建你的app 的时候,你必须要遵循 Django 的方式,这点像极了 Ruby on Rails 的 Rails 框架。有些人会觉得这样有点不爽,但在我看来这是极好的,毕竟我坚信:“约定优于机制”。相对于所有其他的库,Django 框架有最强的社区,这意味着可以轻松获得帮助。

开始flask项目

Flask的hello world应用非常的简单,仅仅单个Python文件的7行代码就够了。

# from http://https://www.fffmo.com/
from flask import Flask
app = Flask(__name__)
@app.route("/") # take note of this decorator syntax, it's a common pattern
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()

这是Flask没有bootstrapping工具的原因:没有它们的需求。从Flask主页上的Hello World特性看,没有构建Python web应用经验的开发者可以立即开始hacking。

对于各部分需要更多分离的项目,Flask有blueprints。例如,你可以将所有用户相关的函数放在users.py中,将销售相关的函数放在ecommerce.py中,然后在site.py中添加引用它们来结构化你的Flask应用。我们不会深入这个功能,因为它超出了我们展示demo应用的需求。

开始 django项目

Django 也有自己的 bootstrap 工具, 内置在 django-admin 中.

django-admin startproject hello_django
django-admin startapp howdy # make an application within our project
Django 跟 Pyramid 区别在于: Django 由多个应用程序组成一个项目, 而 Pyramid 以及 Flask 项目是包含 View 和 Model 单一应用程序 . 理论上, Flask 和 Pyramid 的项目允许存在多个 project/app, 不过在默认配置中只能有一个.

项目目录:
hello_django
├── hello_django
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── howdy
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── manage.py
Django 默认只在项目中创建 空白的 model 和模板文件, 供新手参考的示范代码不多. 此外, 开发者在发布应用程序的时候, 还要自己配置, 这也是个麻烦.

bootstrap 工具的缺点是没有指导开发者如何打包应用. 对于那些没有经验的新手来说, 第一次部署应用将是个很头疼的问题. 像 django-oscar 这样的大社区, 项目都是打包好了, 放在 PyPi 上供大家安装. 但是 Github 上面的小项目缺少统一的打包方式.

开始Pyramid 项目

Pyramid 的 bootstrapping工具叫 pcreate,是Pyramid的组成部分. 之前的 Paste 工具套装提供了 bootstrapping ,但是从那之后被 Pyramid专用工具链替代了。

$ pcreate -s starter hello_pyramid # Just make a Pyramid project
Pyramid 比 Flask 适用于更大更复杂的应用程序. 因为这一点,它的 bootstrapping工具创建更大的项目骨架. Pyramid 同样加入了基本的配置文件,一个例子模版和用于将程序打包上传到 Python Package Index的所有文件

项目目录:
hello_pyramid
├── CHANGES.txt
├── development.ini
├── MANIFEST.in
├── production.ini
├── hello_pyramid
│   ├── __init__.py
│   ├── static
│   │   ├── pyramid-16x16.png
│   │   ├── pyramid.png
│   │   ├── theme.css
│   │   └── theme.min.css
│   ├── templates
│   │   └── mytemplate.pt
│   ├── tests.py
│   └── views.py
├── README.txt
└── setup.py
赞(2) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » Django,Pyramid和Flask之间的差异。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏