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

炫酷骑士
2025-06-14 13:39
阅读 779

开篇:Django是什么?它能做什么?

开篇:Django是什么?它能做什么?

你是不是听说过“网站开发”这个词,但一直觉得太复杂,不知道从哪里下手?别担心!今天我们就来聊聊一个非常适合初学者的Web开发框架——Django

Django 是一个用 Python 编写的 后端 Web 框架。简单来说,它可以帮你快速搭建出功能强大的网站后台,比如博客、商城、论坛等等。它的口号是:“The web framework for perfectionists with deadlines.”(为追求完美又赶时间的人设计的网络框架)也就是说,它既强大,又高效!

为什么要学习 Django?

  • 📚 入门门槛低:适合编程新手
  • ⚡ 开发效率高:很多功能都已经帮你封装好了
  • 🧱 结构清晰:使用经典的 MVT(Model-View-Template)结构
  • 🔐 安全性好:自带很多安全机制
  • 🌍 社区活跃:遇到问题可以轻松找到答案

接下来,我们将一起动手实践,从零开始搭建一个简单的个人博客网站!


环境准备:搭建你的开发环境

环境准备:搭建你的开发环境

在正式开始写代码之前,我们需要准备好开发所需的环境。就像做饭前要准备好锅碗瓢盆一样,编程也需要安装必要的工具。

我们这里主要会用到以下几种软件:

  1. Python 3.x
  2. pip(Python 包管理器)
  3. Django
  4. 一个代码编辑器(比如 VS Code)

我们一步步来安装这些内容。

第一步:安装 Python

你可以先检查一下自己的电脑有没有安装 Python:

Windows:

Win + R,输入 cmd 打开命令行,然后输入:

python --version

如果你看到类似这样输出:

Python 3.10.6

说明已经装好了。如果没有,请去 https://www.python.org/downloads/ 下载安装包并安装。

记得在安装时勾选 “Add Python to PATH”。

macOS 和 Linux:

一般来说系统自带 Python,也可以通过上面的链接下载最新版或使用 Homebrew(macOS)进行安装。


第二步:安装 pip

pip 是用来安装 Python 包的工具。Python 3.4 及以上版本默认自带 pip。你可以通过下面这条命令验证是否安装成功:

pip --version

你会看到类似这样的信息:

pip 23.0.1 from ...

第三步:安装 Django

现在我们可以通过 pip 来安装 Django:

pip install django

安装完成后,输入以下命令检查是否安装成功:

django-admin --version

如果看到类似:

4.2.3

恭喜你!Django 已经安装好了!


第四步:安装 VS Code(可选)

虽然你可以用任何文本编辑器写代码,但我们推荐使用 Visual Studio Code(简称 VS Code),它是一个免费且功能强大的代码编辑器。

官网地址:https://code.visualstudio.com/

安装完成后,你还可以安装一些插件,比如:

  • Python 插件(微软官方出品)
  • Prettier(自动格式化代码)
  • Live Server(方便本地预览网页)

核心概念:理解 Django 的三大支柱

核心概念:理解 Django 的三大支柱

Django 遵循一个叫做 MVT(Model - View - Template) 的架构模式。它是 MVC 模式的一个变体,专门用于 Web 开发。

为了帮助大家更直观地理解这个概念,我们打个比方:

想象你在一个餐馆工作:

角色 类比 功能
Model(模型) 厨师和食材仓库 负责处理数据、数据库操作
View(视图) 厨房里的菜单控制台 处理逻辑,决定要显示什么数据
Template(模板) 顾客看到的菜单 展示内容给用户看

下面我们分别来认识它们。


Model:数据模型(厨房+食材)

Model 负责与数据库交互。你可以把它理解为定义数据结构的地方,比如我们要建一张“文章”表,每个文章有标题、正文、发布时间等字段。

举个例子,我们想保存博客文章的数据,我们可以创建一个 models.Model 的子类:

# myapp/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)

    def __str__(self):
        return self.title

这段代码表示我们建立了一个叫 Post 的数据模型,里面包含三个字段:标题、内容和创建时间。

✅ 小提示:

  • CharField 是有限长度的字符串(比如标题)
  • TextField 是不限制长度的文本内容
  • DateTimeField 是日期时间字段,auto_now_add=True 表示自动生成当前时间

View:视图(控制台+厨师的菜谱)

View 是处理请求并返回响应的模块。例如当用户访问 /blog 页面,view 函数会获取所有文章数据,并把它渲染成 HTML 返回给浏览器。

看个例子:

# myapp/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})

这段代码的意思是,当有人访问某个页面的时候(后面我们会配置 URL 映射),会调用这个函数,把所有文章传递过去,然后渲染页面。


Template:模板(菜单)

Template 是负责生成 HTML 内容的部分。它是前端展示的主要部分,通常放在 templates 文件夹中。

假设我们有一个 HTML 模板文件:post_list.html

<!-- blog/post_list.html -->

<h1>我的博客</h1>

<ul>
  {% for post in posts %}
    <li>
      <h2>{{ post.title }}</h2>
      <p>{{ post.content }}</p>
      <small>{{ post.created_at }}</small>
    </li>
  {% endfor %}
</ul>

在这个模板中:

  • {% for %} 是循环结构,用来遍历每一篇博客
  • {{ }} 是变量插入,会动态替换成对应的内容

实战项目:动手做一个最简单的博客网站

实战项目:动手做一个最简单的博客网站

好了,前面的知识我们已经铺垫了足够多。现在让我们一起来做点实际的东西吧!

我们来做个超级简单的博客网站。最终效果就是能看到一个网页,显示几篇博客文章。

🛠️ 项目目标:

  • 创建一个 Django 项目
  • 创建一个应用 blog
  • 添加文章模型
  • 显示文章列表页面

第一步:创建 Django 项目

打开终端(或命令行),执行以下命令:

django-admin startproject mysite

这会在当前目录下创建一个名为 mysite 的文件夹,这就是我们的 Django 项目。

进入项目目录:

cd mysite

启动服务器:

python manage.py runserver

默认情况下,Django 会在 http://localhost:8000 启动服务器,你可以打开浏览器访问,看到欢迎页面!


第二步:创建一个 App —— blog

Django 推荐将功能模块化,不同的功能可以放在不同的“App”中。

我们现在创建一个名叫 blog 的 App:

python manage.py startapp blog

此时你会看到项目目录中多了一个 blog/ 文件夹。

接着,我们要把这个 app 注册到项目中。打开 mysite/settings.py 文件,在 INSTALLED_APPS 中添加 'blog'

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

第三步:创建博客文章模型

还记得我们刚才讲过的 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)

    def __str__(self):
        return self.title

保存之后,我们需要告诉 Django 这个模型存在,并让数据库为我们创建对应的表格。

运行以下两条命令:

python manage.py makemigrations
python manage.py migrate

这样数据库就准备好了!


第四步:创建管理页面,方便添加文章

Django 自带一个非常方便的后台管理系统,我们可以利用它手动添加一些文章。

首先,创建管理员账户:

python manage.py createsuperuser

根据提示输入用户名、邮箱和密码。

然后注册我们的模型,让后台能看见它。

编辑 blog/admin.py 文件:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

现在,启动服务器:

python manage.py runserver

在浏览器中访问 http://localhost:8000/admin,用你刚刚创建的账号登录,可以看到 Post 模型,点击进去就可以添加文章啦!


第五步:编写视图显示文章列表

我们在前面提到了 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})

第六步:配置 URL 访问路径

为了让用户能访问到我们刚刚写的视图函数,还需要配置 URL。

我们首先在项目的主路由中引入我们的 blog 应用。

打开 mysite/urls.py

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),  # 添加这行
]

因为 blog 还没有自己的 urls.py 文件,我们需要手动创建它:

blog/ 目录下新建文件 urls.py

from django.urls import path
from . import views

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

这样我们就配置好了 / 地址对应的页面。


第七步:创建模板文件

最后一步,就是把数据显示出来。我们需要创建一个 HTML 模板。

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>
        <h2>{{ post.title }}</h2>
        <p>{{ post.content }}</p>
        <small>{{ post.created_at }}</small>
        <hr />
      </li>
    {% empty %}
      <li>还没有文章哦~</li>
    {% endfor %}
  </ul>
</body>
</html>

注意模板路径必须是 blog/templates/blog/post_list.html,不然 Django 找不到哦!


最终成果展示

再次运行服务:

python manage.py runserver

访问 http://localhost:8000/,你应该就能看到文章列表啦!


新手常见问题解答

微服务架构示意图-1

在实践中你可能会遇到一些小问题,别着急,看看这里有没有你想要的答案。

Q1:页面提示 TemplateDoesNotExist,怎么回事?

A: 很可能是模板路径不正确。请确保你在 blog/ 下建立了 templates/blog/post_list.html 文件。

另外还要注意 Django 默认的模板加载方式是按照 apps 的顺序查找模板,所以建议在 settings.py 中加入:

TEMPLATES = [
    {
        ...
        'APP_DIRS': True,
        ...
    },
]

Q2:模型修改后怎么办?会不会影响已有数据?

A: 当你修改了 models.py 中的模型结构(如添加字段),需要重新运行:

python manage.py makemigrations
python manage.py migrate

如果已经有数据,可能需要提供默认值,或者使用空值(null=True)避免报错。


Q3:为什么不能访问 admin 后台?

A: 可能原因有两个:

  1. 没有注册模型,忘记写 admin.site.register(Post)
  2. 数据库未同步(migration 未执行)

可以尝试重新运行 migration:

python manage.py makemigrations
python manage.py migrate

Q4:我应该怎么测试 view 函数是否有错误?

A: 如果 view 函数报错,Django 会直接在浏览器上显示出错信息,比如代码语法错误、模块导入错误、数据库连接失败等。仔细阅读错误信息是解决问题的关键。


学习建议:下一步怎么学?

恭喜你完成了第一个 Django 网站!但这只是刚刚开始。

以下是给你推荐的一些进阶学习方向:

1. 学习静态文件配置(CSS、JS、图片等)

你现在页面看起来很朴素对吧?可以试试加 CSS 文件美化一下界面。

相关知识点:

  • 静态文件配置
  • static 模板标签
  • CDN 引入样式

2. 使用 Bootstrap 快速美化页面

Bootstrap 是一个非常好用的 CSS 框架,可以让你迅速做出好看的网页。

推荐资源:


3. 练习写更多页面

你可以继续练习:

  • 文章详情页(DetailView)
  • 关于我页面(About 页面)
  • 联系我们页面(Contact 页面)

4. 加入用户登录和评论功能

试着实现:

  • 用户注册 / 登录
  • 用户发表评论
  • 评论审核机制

需要用到的功能:

  • Django Forms
  • 用户认证(auth 模块)
  • 评论模型设计

5. 部署上线你的网站

当你做完项目之后,别忘了发布出去!可以让朋友访问!

推荐平台:

  • PythonAnywhere
  • Heroku(已关闭)
  • Vercel / Railway 配合 PostgreSQL
  • 云服务器部署(如阿里云、腾讯云)

学习要点:

  • 设置 ALLOWED_HOSTS
  • 收集静态文件
  • 数据库迁移(比如 SQLite 换成 PostgreSQL)
  • 设置 SECRET_KEY 等敏感配置

总结回顾

在本教程中,我们一起完成了以下核心内容:

✅ 了解 Django 是什么,以及它的工作原理
✅ 搭建了 Python + Django 的开发环境
✅ 学习了 MVT 架构的核心组件:Model、View、Template
✅ 一步步完成了一个基础的博客项目
✅ 解决了一些新手常见的问题
✅ 推荐了后续的学习方向

Django 不仅仅适合新手入门,也适合开发大型企业级项目。希望你能坚持下去,写出越来越棒的网站作品!

如果你喜欢这篇文章,不妨收藏起来慢慢消化,有问题欢迎留言,我们一起探讨学习 😄

评论 0

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