当前位置:首页>python>Python学习【87】:Python 的 Web 开发框架Django与flask对比

Python学习【87】:Python 的 Web 开发框架Django与flask对比

  • 2026-10-21 13:28:15
Python学习【87】:Python 的 Web 开发框架Django与flask对比

Python学习

一、学前花絮

Django 和 Flask 是 Python 世界中最流行的两个 Web 框架,它们各有千秋。Django 遵循“大包大揽”的理念,而 Flask 则是“微内核”的理念。我们之前已经学习了flask,它的特点是轻量化,通过路由的方式很容易实现前后端的数据交互。
今天我们学习Django,它要比flask复杂得多。但既然如此,为什么要学习呢?那是因为它与flask相比也有很多优势。

二、python的Django与flask框架比较

2.1 Django 简单示例

这个示例将带你快速搭建一个返回 "Hello, World!" 的网页。

1.环境准备

首先,确保你已经安装了 Django。如果没有,请在终端运行:

pip install django

2. 创建项目与应用

在 Django 中,一个网站是一个“项目”,项目里可以包含多个“应用”。

1. 创建项目

django-admin startproject mysite

cd mysite

# 2. 创建应用 (例如叫 'hello')

python manage.py startapp hello

3. 编写视图

打开 hello/views.py,写入处理请求的逻辑:

4. 配置 URL 路由

在 hello 目录下创建一个文件 urls.py,用于定义该应用的网址规则:

5. 注册应用与主路由

打开项目主目录下的 mysite/urls.py,将应用的路由包含进来:
记住,项目名称叫“mysite”,在其下面还有一个同样名字“mysite”,以上的urls.py在第二个mysite目录下面。
同时,打开 mysite/settings.py,在 INSTALLED_APPS 列表中添加你的应用名(hello):

6. 运行服务器

回到终端,运行开发服务器:

python manage.py runserver

打开浏览器访问 http://127.0.0.1:8000/,你将看到 "Hello, World!" 的字样。

7.总结Django的用法

最关键的是要看你用Django创建的项目目录层级是否正确,这是初学者最容易困惑的地方!如下所示:
正确的结构应该是:
比较容易犯错的是两个“mysite”目录,两个“init.py”,两个urls.py。这也是比起flask来说要复杂的地方。

2.2 Django 与 Flask 的对比

虽然两者都能实现同样的功能,但它们的设计哲学完全不同。以下表格详细对比了 Django 相比 Flask 的优势:

2.3 Django的优势:自带admin

1.确认配置(通常默认已开启)
检查 settings.py:
确保 INSTALLED_APPS 列表中包含以下两项(通常默认都有):
'django.contrib.admin' (Admin 本身)
'django.contrib.auth' (用户认证系统,Admin 登录需要它)
2.检查 urls.py:
确保主路由文件中包含了 Admin 的路由规则:
3.创建数据库表
Admin 依赖数据库来存储用户信息和日志。即使你还没写自己的模型,也需要先运行迁移命令来创建 Django 自带的表(如用户表、权限表等)。
在终端运行:

python manage.py migrate

这会在数据库中创建 auth_user、django_admin_log 等必要的数据表。
4.创建管理员账号
没有账号就无法登录后台。运行以下命令来创建一个拥有所有权限的超级用户:

python manage.py createsuperuser

系统会提示输入:
Username (用户名):比如 admin
Email address (邮箱):可选,直接回车跳过也可以
Password (密码):输入两次密码(输入时屏幕上通常不会显示字符,这是正常的)
5.注册你的数据模型(让自己的数据出现在后台)
此时如果你访问后台,只能看到“Groups”和“Users”(认证系统的表)。你之前写的 hello 或其他应用的模型是不会自动出现的。
你需要去你的应用(例如 hello)目录下的 admin.py 文件中进行注册。
操作方法:
打开 hello/admin.py,写入以下代码:
而Person是你之前要创建的模型,在models.py中加入:
所谓的模型,可以认为是数据库中的table。对应在python中就是类、对象。比如Person类,包括了姓名、年龄、邮箱等信息。
以上设置之后,在终端执行:

在终端(确保在项目目录下)运行:

python manage.py makemigrations

同步到数据库(执行迁移):

python manage.py migrate

现在重启服务器(如果没重启的话),访问 http://127.0.0.1:8000/admin/。

登录后,你应该能看到一个名为 “人物信息” 的模块,点击进去就可以添加数据了!

在浏览器上可以看到admin的管理页面了:

对于初学者来说,似乎感觉这个Django的管理页面还是经过这么多的步骤才成功。但实际上,我们并未进行前端程序的开发,只是进行了一些配置工作。所以说Django是自带amin的。

2.4 总结

如果你需要快速开发一个功能齐全、数据驱动的网站(如电商、社交平台、CMS),或者你需要一个强大的后台管理系统,Django 是绝对的首选。 它的“约定优于配置”原则能让你少做很多决策,直接开始写业务逻辑。
如果你需要构建一个轻量级的 API、微服务,或者你想要完全掌控应用的每一个组件,或者项目非常简单,Flask 会更加灵活轻便。
简单来说:Django 是一辆配置齐全的SUV,带你快速到达目的地;Flask 是一辆摩托车,灵活但你需要自己组装零件。

三、小结

通过python的Django与flask模块的对比,我们了解到Django的强大。当然flask的快速开发也是其优点。这种比较其实在说明,一个事情,既然存在没有被淘汰,必定有它的价值。在计算机界,一旦有个东西又繁琐还没有实际用途,它一定会惨遭淘汰。

让我们保持学习热情,多做练习。我们下期再见!

最新文章

随机文章