Django入门教程:搭建你的第一个Python网站

运营说要今天
2025-06-19 21:03
阅读 251

开篇:Django 是什么?它是用来做什么的?

开篇:Django 是什么?它是用来做什么的?

你是否曾经想拥有一个属于自己的网站,但又不知道从哪里开始?别担心!今天我们要学习的是 Django —— 一款用 Python 编写的强大、灵活且功能齐全的 Web框架,专门帮助开发者快速搭建动态网站。

那么问题来了:什么是 Web 框架
简单来说,它就像是一套工具箱,帮助我们更高效地编写网页后台(也就是处理用户请求、数据存储等逻辑的部分)。有了这个工具箱,我们就不用从零开始造轮子了,而是可以用现成的功能来构建应用。

Django 的特点

  • 快速开发:内置了很多常用功能,如数据库管理、用户认证、后台管理系统等。
  • 安全性高:自带很多安全防护机制,避免常见的攻击方式。
  • 可扩展性强:适用于小型网站到大型系统。
  • 社区活跃:遇到问题可以轻松找到解决方案或请教他人。

在本教程中,我们将通过一个实际的小项目,手把手带你用 Django 搭建一个简单的个人博客网站。即使你是编程新手,也完全不用担心,我们会用最通俗易懂的语言,一步步带你走进后端开发的世界!


环境准备:搭建我们的“代码工厂”

环境准备:搭建我们的“代码工厂”

在正式开始写代码之前,我们需要先为 Django 准备好“工作环境”。这有点像你要盖房子前要先把工地收拾干净、准备好各种材料和工具一样。

✅ 第一步:安装 Python

目前 Django 支持 Python 3.8 到 3.11 版本。如果你还没安装 Python,请访问官网 https://www.python.org/ 下载对应系统的最新版本。

安装完之后,打开终端或命令行输入:

python --version

如果你看到类似下面的输出说明安装成功:

Python 3.11.5

📌 注意:Windows 用户建议选择自定义安装并勾选“Add to PATH”,这样后续操作会更方便。


✅ 第二步:安装虚拟环境工具 venv

为了不污染全局的 Python 环境,我们通常使用虚拟环境来隔离每个项目的依赖包。

Python 自带了一个叫做 venv 的模块,可以帮我们创建独立环境。

# 创建一个名为 myenv 的虚拟环境(名字随意)
python -m venv myenv

激活虚拟环境

  • Windows 上运行:
myenv\Scripts\activate
  • Mac/Linux 上运行:
source myenv/bin/activate

激活后你会看到命令提示符前面多出了一个 (myenv) 提示,表示你现在正处于虚拟环境中。


✅ 第三步:安装 Django

现在我们可以用 pip 安装 Django 了:

pip install django

安装完成后查看版本:

django-admin --version

看到类似 4.2.5 这样的数字就表示安装成功啦!


核心概念:Django 是怎么工作的?

核心概念:Django 是怎么工作的?

在正式动手写代码之前,先来了解一下 Django 中几个关键的概念,它们是理解整个框架的基础。


🔑 1. 项目(Project)与应用(App)

  • 项目(Project):是一个完整网站的整体结构,相当于整个公司的总架构。
  • 应用(App):是项目中的一个个小模块,比如“博客”、“论坛”、“用户中心”都是一个个 App。

举个🌰例子:

假设你想做一个在线商城,你可以把“商品浏览”、“用户登录”、“购物车”分别做成不同的 app,然后放在同一个项目里统一管理。


🔑 2. MTV 设计模式(模型 Model - 模板 Template - 视图 View)

Django 使用的是 MTV 模式,类似于 MVC 模式,它的结构如下:

层级 作用 对应文件
Model(模型) 负责数据存储(如数据库表结构) models.py
View(视图) 处理业务逻辑,接收请求并返回响应 views.py
Template(模板) 前端页面显示的内容,HTML 文件 templates/

虽然名称叫法不同,但理解上可以认为:

View ≈ 控制器 Controller
Template ≈ 视图 View


🔑 3. 数据库迁移(Migrations)

Django 提供了一种自动同步模型(models.py 中定义的数据结构)到数据库的方法,这个过程就叫做 “迁移(Migration)”。

每次我们修改了数据库结构(如添加字段、修改字段类型),都要执行两个命令:

python manage.py makemigrations
python manage.py migrate

前者生成迁移脚本,后者真正应用更改到数据库。


🔑 4. 后台管理系统(Admin)

Django 自带了强大的后台管理系统,只需要注册你的模型,就能快速拥有一个可视化界面来管理数据库内容。

例如我们可以用它来:

  • 添加文章
  • 修改文章标题
  • 删除评论等等

是不是很酷?😊


实战项目:搭建一个简单的博客网站

现在我们要动手做一个 迷你博客网站,它将具备以下功能:

  1. 显示所有文章列表;
  2. 点击某篇文章可以查看详情;
  3. 后台可以添加、编辑文章。

听起来是不是很酷?那我们就一起一步一步来实现吧!


Step 1:创建项目和应用

先创建一个新项目:

django-admin startproject myblog
cd myblog

接着创建一个名为 blog 的应用:

python manage.py startapp blog

现在你的目录结构应该是这样的:

myblog/
├── blog/
│   ├── migrations/
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── myblog/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

别忘了在 settings.pyINSTALLED_APPS 中添加 'blog',这样才能让 Django 知道我们新增了这个应用:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',  # 添加这一行
]

Step 2:定义模型(Model)

打开 blog/models.py 文件,写下我们的文章模型:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)  # 文章标题
    content = models.TextField()              # 正文内容
    created_at = models.DateTimeField(auto_now_add=True)  # 创建时间
    updated_at = models.DateTimeField(auto_now=True)      # 最后修改时间

    def __str__(self):
        return self.title

保存后运行迁移命令:

python manage.py makemigrations
python manage.py migrate

Step 3:注册模型到 Admin 后台

打开 blog/admin.py,添加以下代码:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

启动开发服务器:

python manage.py runserver

打开浏览器访问:http://127.0.0.1:8000/admin

首次访问你需要创建一个管理员账号:

python manage.py createsuperuser

按照提示输入用户名、邮箱和密码即可。

登录后你应该能看到 Post 模型,并可以添加一篇文章试试看 👇


Step 4:创建视图(View)

接下来我们要写出显示文章列表的视图。

打开 blog/views.py,编写如下内容:

from django.shortcuts import render
from .models import Post

def post_list(request):
    posts = Post.objects.all().order_by('-created_at')  # 获取所有文章并按时间倒序排列
    return render(request, 'blog/post_list.html', {'posts': posts})

Step 5:配置 URL 路由

我们需要设置访问地址 /posts/ 来展示文章列表。

新建 blog/urls.py 文件,并写入以下内容:

from django.urls import path
from . import views

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

接着还需要在主项目 myblog/urls.py 中导入路由:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),  # 匹配根路径
]

Step 6:创建模板(Template)

为了让用户看到文章列表,我们需要写 HTML 页面。

首先,在 blog 目录下新建 templates/blog/post_list.html 文件:

<!-- templates/blog/post_list.html -->
<!DOCTYPE html>
<html>
<head>
    <title>我的博客</title>
</head>
<body>
    <h1>欢迎来到我的博客</h1>
    <ul>
        {% for post in posts %}
            <li>
                <a href="#">{{ post.title }}</a>
                <p>{{ post.content|truncatewords:20 }}</p>
                <small>{{ post.created_at }}</small>
            </li>
        {% empty %}
            <li>还没有任何文章哦~</li>
        {% endfor %}
    </ul>
</body>
</html>

保存后重启服务再次访问 /posts/,你应该可以看到文章列表页面啦!

🎉 恭喜你完成了第一个 Django 页面!


Step 7:添加详情页(可选进阶)

如果你想继续练习,可以再试着做一下文章详情页。

步骤简述如下:

  1. 在模型中加入 slug 字段(友好 URL);
  2. 新建 view 方法 post_detail;
  3. 新增路由 path('post/<int:pk>/', views.post_detail, name='post_detail');
  4. 编写 HTML 模板 post_detail.html;

这部分内容可以在下一阶段深入学习时尝试自己完成。


常见问题解答

下面是初学者最容易遇到的一些问题,快看看有没有你也卡住的地方~


❓Q1:运行 runserver 报错,提示 "no such command"

原因:当前不在项目根目录(即没有 manage.py
🛠 解决方法:确保你在包含 manage.py 的目录下运行命令


❓Q2:模板文件找不到,提示 "TemplateDoesNotExist"

原因

  • 模板路径不对;
  • 没有正确命名模板目录;
  • 没有启用 TEMPLATES 设置;

🛠 解决方法:

  • 检查是否建立正确的目录结构 templates/blog/xxx.html
  • 确保 settings.py 中已启用模板引擎(默认是启用的)

❓Q3:数据库迁移失败

原因

  • 数据库未初始化;
  • 表名冲突;
  • 模型中有错误;

🛠 解决方法:

  • 先删除之前的数据库(db.sqlite3);
  • 再重新运行 makemigrationsmigrate

❓Q4:如何给网页加上样式?

✅ Django 默认不会帮你写前端样式,但你可以使用:

  • 原生 CSS;
  • Bootstrap 框架;
  • TailwindCSS 等现代 CSS 框架;

只需将 CSS 文件放入 static 文件夹,并在 HTML 模板中引用即可:

{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">

学习建议:下一步该学什么?

恭喜你完成了第一个 Django 项目!但这只是一个起点,Django 还有很多强大的功能值得你去探索:


🧩 推荐学习路线

  1. 模板进阶

    • 学习模板继承(layout)
    • 掌握变量过滤器、标签语法等
  2. Form 表单

    • 自动生成 HTML 表单;
    • 数据验证;
    • 表单提交处理;
  3. REST API

    • 使用 Django REST framework 构建前后端分离接口;
    • 与 Vue / React 等前端框架对接;
  4. 用户系统

    • 注册、登录、权限控制;
    • 使用第三方登录(如 GitHub、微信);
  5. 部署上线

    • 将网站发布到公网;
    • 使用 Gunicorn + Nginx;
    • 使用 Heroku 或 PythonAnywhere 等平台;

📘 推荐学习资料

名称 类型 地址
Django 官方文档 英文权威文档 https://docs.djangoproject.com/
入门中文教程 教程合集 https://djangox.com/django-tutorial-zh/
《Fluent Python》 Python 高阶技巧 豆瓣评分9分+经典书籍
Bilibili 教学视频 视频教学 搜索关键词 “Django 零基础” 即可

总结

本教程带领你从零开始了解了:

  • Django 是什么?为什么值得学?
  • 如何搭建开发环境?
  • Django 的核心概念有哪些?
  • 如何用 Django 搭建一个博客网站?
  • 遇到常见问题怎么解决?
  • 学完以后还能学什么?

记住一句话:

不怕慢,只怕停。只要坚持每天进步一点点,你离高手就不远了!


🎯 下一步行动建议:

  1. 把本文项目再重新做一遍;
  2. 给项目加一个“文章详情页”;
  3. 把源码上传 GitHub;
  4. 开始学习 Form 和用户系统;

祝你早日成为一名优秀的 Django 工程师!🚀

如果你喜欢这篇教程,别忘了点赞 + 分享给正在学编程的朋友哟 😄

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝