功能强大的Python Web开发框架:Django
你是否已经对FastAPI、Flask有了一定的了解?你开发维护的Web项目是否功能越来越复杂?你是否会出现技术选型的困难症?
轻量的web开发框架就像是没有任何应用的操作系统,当你需要完成某项任务的时候,首先你需要清楚的知道有哪些应用可以用,其次才是学会使用应用。
这个时候,你会不会想要一款功能强大的框架呢?答案是:Django。
什么是Django
Django 是一个由Python编写的开源免费的Web应用程序框架。它遵循了MVT(Model-View-Template)的设计模式,旨在帮助开发人员快速构建高质量、易维护的Web应用程序。
相比于轻量的框架,Django则提供了许多内置的功能和工具,如表单处理、用户认证、会话管理等,使开发人员能够专注于应用程序的逻辑而不必重复编写常见的Web开发任务。
同时它还具有强大的数据库抽象层,可以轻松地与多种数据库后端集成。
Django 的主要目标之一是提高开发效率,并倡导一种称为 DRY(Don’t Repeat Yourself)的编程理念,即尽量减少重复代码的编写。
Django的由来
Django源于一个非常实际的需求:世界在线是一家负责在新闻截止日期前构建密集的网络应用程序的报纸运营商。在快节奏的新闻编辑室内,世界在线经常只有几个小时的时间来完成复杂的应用程序从概念到发布的过程。
与此同时,世界在线的网页开发者在遵循网页开发的最佳实践方面一直是完美主义者。
在2003年秋季,世界在线的开发者们(Adrian Holovaty和Simon Willison)放弃了PHP,并且开始使用Python开发他们的网站。随着他们创建了诸如Lawrence.com这样密集的、交互性丰富的站点,他们开始提取一个通用的web开发框架让他们构建网页程序越来越开快速。他们在过去的两年里不断的改进和调整这个框架。
在 2005 年夏天,World Online 决定开源 Django。如果没有大量的开源项目 - “Apache”,“Python” 和 “PostgreSQL” 等等,Django 是不可能完成的 - 我们很高兴能够回馈一些东西给开源社区。
Django的设计理念
Django 开发人员在开发 Django 时使用的一些基本哲学,它的目标是解释过去并指导未来
- 松耦合
Django 栈的基本目标是 低耦合高内聚。框架里的不同层(Layers)不应该知道对方的代码,除非它们确实需要。
例如,模板系统不需要知道用户的 Web 请求,数据库层不需要了解视图层,而视图层并不关心程序员所使用的模板系统。
尽管为了方便 Django 带有一个完整的堆栈,但堆栈的各个部分尽可能独立于另一个堆栈。
- 更少的代码
Django 应用的代码应该尽可能地精简,Django 应该充分利用 Python 的动态能力,比如自省机制(introspection)。
- 快速开发
在21世纪,Web框架的核心一点是让Web开发中枯燥的事情处理得更加快速,Django可以做到快速的Web开发。
- 不要重复地造轮子(DRY)
每个独特的概念或数据片应该存在且只存在于一个地方。避免冗余,做好标准化。
合理的框架应该从尽可能少的信息中推断出尽可能多的需求。
- 明确优于隐式
这是在 PEP 20 列出的核心 Python 原则,这意味着 Django 不应该使用太多的“魔术”。除非有一个很好的理由,否则不应该出现魔术。只有当魔术创造了巨大的便利,并且使用其他方式难以实现时,它才值得使用,而且它的实现方式并不会让试图学习如何使用该功能的开发人员感到困惑。
- 一致性
框架应在所有层级上保持一致。一致性适用于从低级(Python 的编码风格)到高级(使用 Django 的“经验”)的所有内容。
快速开始
- 安装Django
pip install django
- 创建一个目录
mysite
,在该目录下创建应用
django-admin startproject mysite
形成完成后目录结构:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
- 启动服务
python manage.py runserver
看到如下输出说明服务启动成功了
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
三月 26, 2024 - 15:50:53
Django version 5.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
- 访问
打开浏览器,访问地址http://127.0.0.1:8000
。至此,一个简单的Web服务就完成了。
进阶
不管是轻量的框架还是完整强大的框架都只是工具,开发者需要根据自己的情况来选择合适的工具。
Django框架我已经使用了近十年了,还真是屹立不倒呢。Django框架也可以说是我职业生涯的重要转折点,熟练掌握一项工具,真的可以改变一个人的人生。
如果你也对Django感兴趣并想要学习更多,记得关注:遇码,回复:django,获取官方文档。