个性化阅读
专注于IT技术分析

Flask和Django有什么不同和区别?

本文概述

Django和Flask是Python的网络框架。众所周知, Python是最通用的编程语言, 它提供了广泛的Web框架。 Web开发人员可以选择这些框架。程序员可以灵活地利用全栈Python Web框架。它增强了复杂Web应用程序的开发。 Python还提供了一个选项, 可以选择微型和轻量级的Python Web框架来构建简单的Web应用程序, 而无需花费额外的时间和精力。

Flask vs Django

Django和Flask都是Python的流行框架。每个框架都有其独特的质量, 我们可以根据项目要求使用它。 Django是一个完整的Web框架, 用于大型和复杂的Web应用程序, 而Flask是轻量级的可扩展Web框架。 Django随附了包含电池的方法, 并提供了最惊人的功能。

它是基于两个POCO项目开发的。第一个是WSGI(Web服务器网关接口)工具包和Jinja2模板引擎。让我们看一下Django和flask的简要介绍。

什么是Django?

Django的正式定义是:” Django使你更容易以更少的代码更快地构建更好的Web应用程序”。它用作全栈式Web框架, 它自己执行许多任务。 SQLite数据库已经内置在此框架中。

使用Django的公司

以下是使用Django作为框架的巨型公司:

  • Instagram的
  • pinterest
  • Udemy
  • Coursera
  • 否认

什么是Python Flask?

Flask是用Python编程语言编写的微型Web框架。它提供了灵活性, 简单性和细粒度的控制。 “微”一词意味着Flask致力于保持核心的可扩展性, 但直截了当。完全取决于你的需要。它不会为你决定, 例如使用哪个数据库。它确定使用哪种模板引擎。

使用Flask的公司:

  • 奈飞
  • Reddit
  • Zillow
  • MailGui

Flask和Django之间的比较

Web开发人员需要了解这些框架之间的区别, 因为这两个框架都有各自的功能。让我们基于以下几点来看一下这些框架之间的区别:

基本信息

Flask由Adrian Holovaty和Simon Willison于2010年发布。它是通过使用大约10000行源代码制成的。它用于开发简单的Web应用程序, 微服务和”无服务器”平台。它提供URL路由, 请求和错误处理以及开发服务器。

Django于2005年发布, 使用24万行源代码制作而成。开发更复杂的Web应用程序所需的时间和精力更少。它拥有一个建立良好的庞大社区, 致力于增强框架功能。

功能性

Django是一个全栈的Python Web框架, 它遵循包含电池的方法。这种方法使Django易于为Web开发人员创建基本的Web开发任务, 例如用户身份验证, URL路由和数据库模式迁移。 Django还提供了一个内置的模板引擎, ORM系统和自举工具, 在自定义Web开发中非常有用。

Flask是一个简单, 轻巧且易于使用的框架。它包含的内置功能少于Django。但是, 它为Web开发人员提供了便利, 使其可以保持Web应用程序核心的可扩展性和直接性。

数据库

Flask没有数据库层, 没有ORM, 不支持NoSQL, 通过SQLAlchemy执行数据库操作。

Django提供了一个ORM系统来执行标准的数据库操作, 而无需编写冗长的SQL查询。

安全

Flask具有针对多种常见威胁(例如CSRF, XSS和SQL注入)的内置安全性。

与其他Web框架相比, Django更安全。它包含一个较小的代码库, 因此不太可能遭到未经授权的人攻击。为了使其更加安全, 需要评估和监视第三方库和扩展。

灵活性

Django遵循电池包含方法, 该方法可帮助开发人员在不使用第三方工具和库的情况下构建各种Web应用程序。但是开发人员无法更改Django提供的模块。我们必须使用这些可用的库来构建Web应用程序。

另一方面, Flask是一个微型且可扩展的Web框架。通过使用Web开发工具和库, 它可以根据其需求灵活地开发Web应用程序。 Flask由于其简单且可自定义的体系结构, 因此是初学者的首选框架。

内置自举工具

Django随附名为–django-admin的内置引导程序工具。无需使用任何外部输入, 开发人员即可轻松构建应用程序。我们可以将一个项目分为几个应用程序。开发人员可以使用django-admin在项目内创建一个新应用程序, 而Flask不包含内置的引导程序工具。

速度

Django和Flask的工作速度相同。编程语言或Web框架决不负责速度的降低。相反, 由于数据库查询, 缺少缓存或不使用CDN进行前端断言, 任何网站都会变慢。

特征

Django的

  • 它具有强大的文档。
  • 世界各地的广泛社区。
  • 它由内置管理员组成。
  • 异步功能。
  • 它比其他框架更安全。

Python Flask

  • 它是一个轻量级且可扩展的WSGI Web框架。
  • 它提供了一个非关系数据库。
  • 它具有轻量级的代码库。

Hello World程序比较

让我们使用这两个框架在网页上显示Hello World。

Python Flask

首先, 使用pip install flask命令安装flask, 它将下载Python Flask中的整个配置, 并创建一个新文件hello_flask.py。该程序如下:

from flask import Flask, escape, request

app = Flask(__name__)

@app.route('/')
def hello():
    name = request.args.get("name", "World")
    return f'Hello, {escape(name)}!'

然后从命令行启动Flask服务器:

$ env FLASK_APP=hello_flask.py flask run
* Serving Flask app "hello_flask.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0. 1:5000/ (Press CTRL+C to quit)

单击上面的链接, 它将在网页上打印Hello World。

Django的

首先, 使用pip install django命令安装django。使用以下代码创建hello_django.py:

from django.conf import settings
from django.core.handlers.wsgi import WSGIHandler
from django.core.management import execute_from_command_line
from django.http import HttpResponse
from django.urls import path

settings.configure(
    ROOT_URLCONF=__name__, DEBUG=True, )

def hello_world(request):
    return HttpResponse("Hello, Django!")

urlpatterns = [
    path('', hello_world)
]

application = WSGIHandler()

if __name__ == "__main__":
    execute_from_command_line()

在终端中输入以下命令:

python hello_django.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
December 17, 2019 - 13:48:54
Django version 3.0, using settings None
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

当你单击以上链接时, 它将在网页上显示Hello World。


赞(0) 打赏
未经允许不得转载:srcmini » Flask和Django有什么不同和区别?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

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

微信扫一扫打赏