📅  最后修改于: 2021-01-02 04:38:10             🧑  作者: Mango
Django和Flask是Python的Web框架。众所周知, Python是最通用的编程语言,它提供了广泛的Web框架。 Web开发人员可以选择这些框架。程序员可以灵活地利用全栈Python Web框架。它增强了复杂Web应用程序的开发。 Python还提供了一个选项,可以选择微型和轻量级的Python Web框架来构建简单的Web应用程序,而无需花费额外的时间和精力。
Django和Flask都是Python的流行框架。每个框架都有其独特的质量,我们可以根据项目要求使用它。 Django是一个完整的Web框架,用于大型和复杂的Web应用程序,而Flask是一个轻量级的可扩展Web框架。 Django附带了电池内置方法,并提供了最惊人的功能。
它是基于两个POCO项目开发的。第一个是WSGI(Web服务器网关接口)工具箱和Jinja2模板引擎。让我们看一下Django和flask的简要介绍。
Django的正式定义是:“ Django使您更容易以更少的代码更快地构建更好的Web应用程序” 。它用作全栈式Web框架,它自己执行许多任务。 SQLite数据库已经内置在此框架中。
使用Django的公司
以下是使用Django作为框架的巨型公司:
Flask是用Python编程语言编写的微型Web框架。它提供了灵活性,简单性和细粒度的控制。 “微型”一词意味着Flask致力于保持核心的可扩展性,但直截了当。完全取决于烧瓶的使用;它不会为您决定,例如使用哪个数据库。它确定使用哪种模板引擎。
使用Flask的公司:
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的
烧瓶
让我们使用这两个框架在网页上显示Hello World。
烧瓶
首先,使用pip install flask命令安装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)
单击上面的链接,它将在网页上printHello 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。