Django 从环境搭建到第一个项目

发布于:2025-09-10 ⋅ 阅读:(19) ⋅ 点赞:(0)

作为一名刚接触 Django 的开发者,我在学习过程中整理了这份入门笔记,涵盖 Django 框架基础、环境搭建、第一个项目创建以及核心配置,希望能为同样刚入门的小伙伴提供清晰的学习思路。

一、Django 框架基础认知

在开始实际操作前,先对 Django 框架有个基础了解,能让后续学习更顺畅。

Django 遵循 MTV(模型 - 模板 - 视图)架构,这是从 MVC(模型 - 视图 - 控制器)模式演变而来,各组件功能明确:

1.1 什么是 Django

Django 是一款高级 Python Web 开源框架,发音为dʒæŋgəʊ。它由经验丰富的开发人员构建,解决了 Web 开发中诸多常见问题,能让开发者专注于应用程序编写,无需 “重复造轮子”。近年来,随着 Python 地位的上升,Django 发展迅猛,版本更新迭代快。截至目前,最新版本是 5.2.5 LTS,官方规划未来两年将更新到 6.0 LTS 版本。

1.2 Django 的 MTV 架构

  • 模型(Model):处于 MTV 模式底层,是数据存取层。负责处理与数据相关的所有事务,比如数据的存取、数据有效性验证以及数据间关系处理等,还能通过 ORM(对象关系映射)建立业务对象与数据库的映射。
  • 模板(Template):位于 MTV 模式顶层,是表现层。负责处理与表现相关的操作,简单来说就是决定数据如何在页面或其他类型文档中显示,比如生成 HTML 页面。
  • 视图(View):处于 MTV 模式中间层,是业务逻辑层。负责存取模型以及调取合适模板的相关逻辑,是连接模型和模板的桥梁,仅负责选择要展示的数据并传递到模板,不处理用户输入。
  • URL 分发器:虽未在 MTV 名称中体现,但至关重要,相当于 MVC 模式中的控制器(Controller)。它使用正则表达式匹配 URL,将 URL 页面请求分发给不同的视图处理,再由视图调用相应的模型和模板。

下面是一个简化的表格,用于展示MVC(Model-View-Controller)、MVT(Model-View-Template)三种设计模式的主要区别

特性/设计模式

MVC(模型-视图-控制器)

MVT(模型-视图-模板)

主要目标

分离数据管理、业务逻辑与界面呈现。

通过清晰的分离关注点来简化Web应用开发。

组件角色

- Model: 数据存取层。

- View: 用户界面层。

- Controller: 接收用户输入并调用Model和View进行适当响应。

- Model: 数据存取层。

- View: 视图层,负责展示逻辑。

- Template: 定义了如何将数据渲染到HTML页面上。

数据流动

用户交互 -> Controller -> Model -> View

用户交互 -> View -> Model -> Template

适用场景

适用于需要复杂用户交互的应用程序。

主要用于Web开发,尤其是Django框架中。

优点

提供良好的分离关注点,便于代码维护。

简化Web应用开发流程,易于理解。

缺点

可能导致过多的事件监听器和回调函数。

相比MVC,灵活性较低,特别是在非Web上下文中。

MVC和MVT的图示:

①MVC图示:

②MVT图示:

1.3 Django 的核心特点

Django 能成为流行的 Web 框架,离不开其强大的特点:

  • 全功能框架:提供从数据库到模板的完整解决方案,无需额外整合大量第三方工具。
  • ORM 系统:强大的对象关系映射功能,简化数据库操作,开发者无需编写复杂的 SQL 语句,用 Python 代码就能操作数据库。
  • 自动化管理后台:可自动生成管理界面,方便对网站内容进行管理,大大减少后台开发工作量。
  • 灵活路由系统:支持灵活的 URL 配置,能轻松实现 URL 与视图的映射。
  • 强大模板系统:拥有强大的模板引擎,支持模板继承,便于实现页面风格统一和代码复用。
  • 便捷表单处理:简化表单的创建和验证流程,降低表单开发难度。
  • 内置认证系统:提供内置的用户认证和权限管理功能,保障网站安全。
  • 全面安全特性:能有效防止 SQL 注入、XSS(跨站脚本)、CSRF(跨站请求伪造)等常见网络攻击。
  • 国际化支持:内置多语言支持,便于开发多语言版本的网站。
  • 实用缓存框架:支持多种缓存后端,可提高网站访问速度,减轻服务器压力。

二、创建第一个 Django 项目(两种方式)

安装好开发环境后,就可以创建第一个 Django 项目了,这里介绍两种常用的创建方式:通过命令行和通过 PyCharm。

2.1 安装 Django 框架

完成上述准备工作后,就可以安装 Django 框架了。

1.打开命令行,输入以下命令安装指定版本(5.2.5)的 Django:

python -m pip install Django==5.2.5

    2.安装完成后,验证是否安装成功,输入命令:

    django-admin --version

    如果能显示 Django 的版本信息,说明 Django 安装成功。

    安装好开发环境后,就可以创建第一个 Django 项目了,这里介绍两种常用的创建方式:通过命令行和通过 PyCharm。

    2.2  通过命令行创建 Django 项目

    1. 创建项目目录:首先在命令行中切换到想要存放项目的目录,然后输入以下命令创建一个名为 “django_project” 的项目目录,并进入该目录:

    mkdir django_project
    cd django_project

    2.创建虚拟环境:为了避免项目依赖冲突,建议为每个 Django 项目创建独立的虚拟环境。输入以下命令创建名为 “venv” 的虚拟环境:

    python -m venv venv

    什么是虚拟环境?

    venv 就是 Python 的“项目隔离罩”,让你每个项目用自己的 Python 和依赖,干净、可控、不打架

    3.激活虚拟环境

    • Windows 系统:
    venv\Scripts\activate

    • macOS/Linux 系统(主播的电脑是windows系统,所以这个就没有演示了):
    source venv/bin/activate

    激活成功后,命令行提示符前会显示 “(venv)”。

    4. 安装 Django:虽然之前已经安装过 Django,但为了确保虚拟环境中使用的是指定版本,可再次输入安装命令(若虚拟环境中已存在,会提示已安装):

    pip install Django==5.2.5

    5.创建 Django 项目:输入以下命令创建一个名为 “mysite” 的 Django 项目:

    django-admin startproject mysite

    6.进入项目目录

    cd mysite

    7.运行开发服务器:输入命令启动 Django 开发服务器:

    python manage.py runserver

    启动成功后,在浏览器中输入 “http://127.0.0.1:8000/”,若能看到 Django 的默认欢迎页面,说明项目创建并启动成功。

    2.3  通过 PyCharm 创建 Django 项目

    1. 打开 PyCharm,点击 “New Project”。
    2. 在弹出的窗口中,选择 “Django” 选项,然后设置项目的名称(如 “mysite”)和项目存放位置。
    3. 选择 Python 解释器,建议选择之前创建的虚拟环境中的 Python 解释器(若未创建,可在此时通过 “New environment” 选项创建)。
    4. 点击 “Create” 按钮,等待项目初始化完成。
    5. 项目初始化完成后,点击 PyCharm 工具栏中的 “Run” 按钮(或右键点击项目中的 “manage.py” 文件,选择 “Run 'manage.py runserver'”),启动开发服务器。
    6. 同样在浏览器中输入 “http://127.0.0.1:8000/”,查看是否能正常显示 Django 欢迎页面。

    创建成功的目录:

    三、两种启动项目的方式

    3.1 通过指令运行

    python manage.py runserver

    3.2 通过Pycharm工具运行

    runserver

    成启动后打开http://127.0.0.1:8000/的页面:

    四、总结

    当你按下 python manage.py runserver 的那一刻,本地回显的 127.0.0.1:8000 不只是一个欢迎页面,而是一把钥匙

    • 它打开了 ORM 让你用 Python 写 SQL

    • 它铺好了路由让你随心所欲定制 URL

    • 它准备好了 MTV 模式,等你把创意塞进模板里

    • 它暗装了 admin 后台,只等你一句 admin.site.register() 就让数据库秒变可视化

    今天,我们搭的是“毛坯房”;明天,就能用它长出用户系统、RESTful API、WebSocket 聊天室、甚至一整个 SaaS。

    🎯 评论区立个 Flag 吧
    你打算在这个项目里加什么功能?
    是博客、商城、还是私藏已久的脑洞?
    留言打卡 + 点赞,过两周我来围观:
    谁的 star 最多,我免费出下一篇《从 0 到上线:Django 部署全攻略》!

    如果这篇笔记帮你少踩了坑,点个 ❤️ 与收藏,把干货转给那个还在被“环境配置”劝退的伙伴。
    Django 的世界很大,我们一起把它跑通、玩烂、再重构!

                                                                                                            —— 下次见,代码里相逢。


    网站公告

    今日签到

    点亮在社区的每一天
    去签到