Django入门:框架基础与环境搭建

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

从零开始打造你的Web开发利器

想象一下,你想快速开发一个网站,却不想从零写数据库连接、用户认证或页面渲染的代码?这时候,Django就像一个经验丰富的“老搭档”,帮你处理所有琐事,让你专注于创意部分。Django是一个高级Python Web框架,诞生于2005年,以快速开发和实用设计闻名。今天,我们就从零开始,带你一步步掌握Django的基础、环境搭建和第一个简单应用。别担心,我会用通俗的语言和实际代码解释,一切都像聊天一样轻松上手。走起!


一、Django框架基础

1.1 Django框架的基础知识

Django是个用Python写的开源Web框架,2005年发布,名字灵感来自爵士乐手Django Reinhardt。它以“DRY(Don't Repeat Yourself)”和“快速开发”为理念,帮你少写重复代码,快速上线项目。

核心特点:

  • 全栈框架:从数据库到前端模板,Django提供一站式解决方案。

  • ORM(对象关系映射):无需写SQL,用Python操作数据库。

  • 内置Admin面板:开箱即用的后台管理界面,省时省力。

  • 安全性高:内置防御XSS、CSRF、SQL注入等功能。

适合场景:博客、电商、后台管理、社交平台等。无论你是开发个人项目还是一人公司,Django都能帮你快速上手。


1.1.2 Django框架设计原理

Django遵循 MVC(Model-View-Controller) 设计模式,但在Django里叫 MTV(Model-Template-View)

  • Model(模型):定义数据结构,映射数据库表。用Python类表示,比如User模型对应users表。

  • Template(模板):HTML页面,负责展示数据。Django模板引擎支持变量、循环、过滤器。

  • View(视图):处理用户请求,调用模型,渲染模板。视图是个Python函数或类,决定“返回什么”。

核心思想:模块化、分层。每个部分职责明确,代码复用性高。比如,模型只管数据,视图只管逻辑,模板只管展示。

# 示例:blog/models.py 中的一个简单模型
from django.db import models

class Post(models.Model):  # 模型类
    title = models.CharField(max_length=200)  # 标题字段
    content = models.TextField()  # 内容字段
    pub_date = models.DateTimeField(auto_now_add=True)  # 自动添加发布时间

    def __str__(self):
        return self.title  # 对象打印时显示标题

1.1.3 Django框架工作机制

Django的工作流程像一个高效的“服务员”:

  1. 用户在浏览器输入URL(如http://example.com/blog/)。

  2. Django的URL分发器(urls.py)根据URL匹配对应的视图函数。

  3. 视图函数处理请求,可能查询数据库(通过模型)或调用模板。

  4. 视图返回HTML/JSON等响应,浏览器渲染。

  5. 返回HttpResponse响应给用户。

如果出错,异常处理中间件(Exception Middleware)会捕获,返回404或500错误页。请求中间件(Request Middleware)增强功能,如添加日志。

用图表示:

用户请求 (HTTP) → Web服务器 → URLconf匹配 → 视图处理 → 模型/数据库交互 → 模板渲染 → HttpResponse → 用户显示

代码示例:在views.py中,视图函数就是核心:

# blog/views.py
from django.shortcuts import render
from .models import Post

def post_list(request):  # 视图函数,接收request
    posts = Post.objects.all()  # 从模型取所有文章
    return render(request, 'blog/post_list.html', {'posts': posts})  # 渲染模板,传数据

启动服务器:python manage.py runserver,访问localhost:8000,就能看到效果。


1.1.4 Django框架用户操作流程

从用户角度看,Django应用的操作流程:        

  1. 访问页面:用户打开网站,触发GET/POST请求。

  2. 表单提交:比如登录,填写用户名/密码,发送POST请求。

  3. 后端处理:Django验证数据,保存到数据库或返回结果。

  4. 页面渲染:用户看到更新后的页面(如“登录成功”)。

开发者视角:你只需写模型定义数据、视图处理逻辑、模板设计UI。Django自动连接它们。

比喻:用户是“顾客”,URL分发器是“前台”,视图是“厨师”(取材做菜),模型是“仓库”(存货),模板是“盘子”(盛放)。

在MTV中,用户请求先到视图(不直接处理输入),视图选数据传模板,模板展示。灵活性高,能随时换“盘子”而不影响“菜”。


1.1.5 Django框架特点

  • 快速开发:内置工具(如Admin、ORM)让你专注业务逻辑。

  • 可扩展:支持插件(DRF、Celery等),适合复杂项目。

  • 社区活跃:文档完善,生态丰富,遇到问题总有答案。

  • 安全第一:自动处理常见Web漏洞,省心。

  • 全包:从认证到表单,Django几乎啥都有。


二、搭建Django框架开发环境

2.1 安装Python语言环境

Django是Python框架,所以先装Python。推荐Python 3.10+(稳定且兼容)。

步骤

  1. 去Python官网下载安装包(Windows/Mac/Linux)。

  2. 安装时勾选“Add Python to PATH”(Windows),方便命令行调用。

  3. 验证安装:

    python --version
    # 输出:Python 3.10.x

提示:用pip --version检查pip(Python包管理器)是否正常。用虚拟环境隔离项目,避免依赖冲突。创建:python -m venv venv,激活(Windows:venv\Scripts\activate;Mac/Linux:source venv/bin/activate)。


2.2 安装setuptools工具

setuptools是Python的包管理工具,通常随Python安装。如果没有,安装:

pip install setuptools

验证:

pip show setuptools
# 输出版本信息
pip install setuptools  # 安装
python -m pip install --upgrade setuptools  # 升级
pip show setuptools  # 验证,显示版本

官网:https://pypi.org/project/setuptools/。它帮你管理包,像pip的“助手”。


2.3 安装Django框架

用pip安装Django(推荐4.2版本,稳定):

pip install django==4.2

验证:

django-admin --version
# 输出:4.2

小技巧:建议用虚拟环境隔离项目依赖:

python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

激活后,pip命令只影响当前项目。


三、开发第一个Django框架应用程序

现在,我们来写一个简单的博客应用,带你体验Django的“魔法”!目标:实现一个展示文章列表的页面。

3.1 通过命令行构建Django应用程序

命令行是最基础方式,适合学习原理。

mkdir django_project  # 创建目录
cd django_project
python -m venv venv  # 虚拟环境
# 激活(Windows: venv\Scripts\activate; Mac/Linux: source venv/bin/activate)
pip install Django==5.2.5  # 安装
django-admin startproject mysite  # 创建项目
cd myblog
python manage.py runserver  # 运行,访问 http://127.0.0.1:8000
  1. 创建项目

    django-admin startproject myblog
    cd myblog

    项目结构:


  2. 创建应用: Django项目由多个“应用”组成,每个应用负责一块功能。创建博客应用:

    python manage.py startapp blog
  3. 注册应用: 编辑myblog/settings.py,添加blog:

    # myblog/settings.py
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        # ... 其他
        'blog',  # 新增
    ]
  4. 启动开发服务器

    python manage.py runserver

    打开http://localhost:8000,看到Django欢迎页,说明成功!


3.2 通过PyCharm平台开发Django应用程序

PyCharm是Python开发的利器,推荐Community版(免费)。

步骤

  1. 安装PyCharm,打开项目文件夹myblog。

  2. 配置解释器:File > Settings > Project > Python Interpreter > Add Interpreter > 选择虚拟环境venv。

  3. 创建应用:Tools > Run manage.py Task > 输入startapp blog。

  4. 运行:点击Run > Edit Configurations > 添加Django Server,端口8000。

PyCharm的优势:代码补全、调试、集成的manage.py命令行,效率翻倍。


3.3 添加简单的Django应用程序代码

让我们实现一个简单的文章列表页面。步骤:

1. 定义模型(blog/models.py)

文章需要标题、内容、发布日期。编辑blog/models.py:

# blog/models.py
from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

运行迁移,创建数据库表:

python manage.py makemigrations
python manage.py migrate
2. 创建视图(blog/views.py)

视图处理请求,返回文章列表:

# blog/views.py
from django.shortcuts import render
from .models import Post

def post_list(request):
    posts = Post.objects.all()
    return render(request, 'blog/post_list.html', {'posts': posts})
3. 配置URL(blog/urls.py)

新建blog/urls.py:

# blog/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list'),
]

在主项目myblog/urls.py中引入:

# myblog/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]
4. 创建模板(blog/templates/blog/post_list.html)

在blog/templates/blog/下新建post_list.html:

<!DOCTYPE html>
<html>
<head>
    <title>我的博客</title>
</head>
<body>
    <h1>文章列表</h1>
    <ul>
        {% for post in posts %}
            <li>{{ post.title }} - {{ post.pub_date }}</li>
        {% endfor %}
    </ul>
</body>
</html>

配置模板路径(myblog/settings.py):

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        # ...
    }
]
5. 添加测试数据

用Django Shell添加文章:

python manage.py shell
>>> from blog.models import Post
>>> Post.objects.create(title="第一篇文章", content="Hello Django!")
>>> Post.objects.create(title="第二篇", content="Django真好用")
6. 运行测试

python manage.py runserver

打开http://localhost:8000,你会看到:

文章列表
- 第一篇文章 - 2025-09-08 ...
- 第二篇 - 2025-09-08 ...

结语:Django,Web开发的加速器

恭喜你!通过这篇博客,你学会了Django的基础知识、环境搭建和第一个Web应用开发。Django的“魔法”在于它把复杂的工作(数据库、路由、模板)简化成了几行代码,让你专注创意。


想看完整代码?

欢迎star!有问题?评论区聊!下篇我们聊Django的ORM和Admin!


网站公告

今日签到

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