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

接口字段消失术
2025-06-21 16:10
阅读 216

开篇:Django是什么?它可以做什么?

开篇:Django是什么?它可以做什么?

在学习任何新技能之前,了解它是谁、它能做什么,以及你为什么需要它非常重要。今天我们要介绍的这个技术叫做 Django,它是用 Python 编写的开源 Web 框架。

为什么选择 Django?

  • 高效快速开发:Django 提供了许多内置功能(比如用户认证、后台管理等),让你不需要“重复造轮子”。
  • 安全性强:Django 内置了防止常见攻击(如 SQL 注入、跨站脚本攻击)的功能。
  • 易于扩展:无论你想做的是一个博客系统、电商网站还是企业管理系统,Django 都可以轻松应对。
  • 社区活跃:全球有大量的开发者在使用和维护 Django,你遇到问题时总能找到答案。

简单说:Django 是帮你构建网页的工具箱!

你可以把它想象成一套“乐高积木”,里面有各种已经搭好的模块(比如登录框、评论区等)。只要你掌握了方法,就可以用这些模块快速拼出自己的网站。


环境准备:安装 Python 和 Django

环境准备:安装 Python 和 Django

在开始写代码前,我们需要先准备好开发环境。这一步是新手最容易卡住的地方之一,所以我会尽量一步步说明清楚。

第一步:安装 Python

Django 是用 Python 编写的,所以我们必须先装好 Python。

如何检查是否已安装 Python?

打开终端(Windows 用户可以用 cmd 或 PowerShell,Mac 用户用 Terminal,Linux 用户就懂了 😊)

输入以下命令:

python --version

如果返回类似 Python 3.x.x 的结果,恭喜你已经有了。否则请到官网 https://www.python.org/downloads/ 下载安装包,并安装。

⚠️ 注意:请下载最新的 Python 3 版本。

第二步:安装虚拟环境(推荐)

为了避免不同项目之间依赖冲突,建议我们为每个 Django 项目创建一个“隔离房间”——也就是虚拟环境(virtual environment)。

安装 pip(Python 包管理工具)

如果你还没安装 pip(通常 Python 自带),可以通过下面的方法安装:

  • Windows:

    python -m ensurepip --default-pip
    
  • Mac/Linux:

    sudo apt-get install python3-pip   # Ubuntu/Debian
    brew install python@3.x            # Mac with Homebrew
    

创建虚拟环境

python -m venv myenv

这会在当前目录下创建一个名为 myenv 的虚拟环境文件夹。

启动虚拟环境

  • Windows:

    myenv\Scripts\activate
    
  • Mac/Linux:

    source myenv/bin/activate
    

一旦激活,你会看到终端前面有个 (myenv) 的提示符。

第三步:安装 Django

现在,我们可以安装 Django 了。

pip install django

等待几分钟后,输入以下命令确认是否安装成功:

django-admin --version

出现类似 4.2.1 的版本号表示安装成功!


核心概念:理解 Django 的结构

在开始写网站之前,我们先来了解一下 Django 的基本结构。Django 使用的是 MTV 设计模式,这是对 MVC 架构的一种变体。

MTV 分别代表什么?

名称 全称 中文解释 职责
M Model 数据模型 和数据库打交道,定义数据结构
T Template 模板 控制页面外观(HTML 页面)
V View 视图 处理逻辑,决定展示什么内容

听起来有点抽象?没关系,我们会用项目来实践这些概念。

常见术语简要说明

  • 项目(Project):整个网站的大框架,包含多个应用。
  • 应用(App):具体功能模块,比如博客、留言、用户中心等。
  • URL路由(Routing):告诉 Django,当访问某个网址时,应该执行哪段代码。
  • 静态文件(Static Files):CSS、JavaScript、图片等资源。
  • 模板(Template):HTML 文件中嵌入动态数据,实现个性化展示。

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

我们将从零开始,创建一个可以显示文章列表的博客网站。完成后效果如下:

博客首页:

  • 显示文章标题
  • 每篇文章有发布时间
  • 可点击进入详情页面

第一步:创建 Django 项目

激活虚拟环境后,运行下面的命令:

django-admin startproject myblog

这就生成了一个叫 myblog 的项目文件夹。进入该文件夹:

cd myblog

项目目录结构如下:

myblog/
├── manage.py         # Django 管理脚本
└── myblog/
    ├── __init__.py
    ├── settings.py   # 配置文件
    ├── urls.py       # 总路由配置
    └── wsgi.py       # 服务器接口模块

第二步:启动本地服务器测试

执行下面的命令:

python manage.py runserver

在浏览器中访问 http://127.0.0.1:8000/,你应该能看到 Django 的欢迎页面。

第三步:创建 blog 应用

Django 推荐每个功能模块作为一个独立应用。我们创建一个叫 blog 的应用:

python manage.py startapp blog

此时你会发现项目多了一个 blog/ 目录:

blog/
├── migrations/        # 数据库迁移脚本
├── __init__.py
├── admin.py           # 后台管理模块
├── apps.py
├── models.py          # 数据模型
├── tests.py           # 单元测试
└── views.py           # 视图函数

接下来,我们要告诉 Django 这个应用的存在。

打开 myblog/settings.py,找到 INSTALLED_APPS 列表,在最后加上:

'blog',

第四步:设计数据模型(Model)

我们需要定义博客文章的数据结构。打开 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('发布日期')   # 发布时间字段

    def __str__(self):
        return self.title

保存之后,我们还要让 Django 把这些模型应用到数据库中。

运行以下两条命令:

python manage.py makemigrations blog
python manage.py migrate

📝 解释:

  • makemigrations:告诉 Django 我们做了哪些模型变更。
  • migrate:把这些变更同步到数据库中。

第五步:注册模型到后台管理

为了让管理员方便添加文章,我们可以在 Django 自带的后台管理界面中注册我们的模型。

打开 blog/admin.py,修改为:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

然后创建管理员账户:

python manage.py createsuperuser

输入用户名、邮箱和密码后完成注册。

再次运行服务器:

python manage.py runserver

访问 http://127.0.0.1:8000/admin/,用刚才创建的账号登录,你就能看到 Posts 板块了。

点击 “Add” 按钮新增两篇测试文章吧!

第六步:编写视图(View)

现在我们要把数据展示出来。

打开 blog/views.py,添加如下代码:

from django.shortcuts import render
from .models import Post

def post_list(request):
    posts = Post.objects.all().order_by('-pub_date')  # 按发布时间倒序排列
    return render(request, 'blog/post_list.html', {'posts': posts})

这段代码的意思是:“取出所有文章,按时间最新排前面,然后渲染到 HTML 页面上”。

第七步:设置 URL 路由

打开 blog/urls.py,如果没有该文件,请手动创建它,并写入以下内容:

from django.urls import path
from . import views

urlpatterns = [
    path('', 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('blog/', include('blog.urls')),  # 新增这一行
]

现在你可以通过 http://127.0.0.1:8000/blog/ 访问博客页面了!

但目前还不能正常显示内容,因为我们还没有写 HTML 模板。

第八步:编写模板(Template)

在项目根目录创建一个 templates 文件夹,用于存放模板文件:

myblog/
├── templates/
│   └── blog/
│       └── post_list.html
...

确保目录结构正确。

编辑 templates/blog/post_list.html,内容如下:

<!DOCTYPE html>
<html>
<head>
    <title>我的博客</title>
</head>
<body>
    <h1>欢迎来到我的博客!</h1>
    
    {% for post in posts %}
        <div style="margin-bottom: 20px;">
            <h2>{{ post.title }}</h2>
            <p><em>{{ post.pub_date }}</em></p>
            <p>{{ post.content|truncatewords:50 }}</p>
        </div>
    {% empty %}
        <p>暂时没有文章。</p>
    {% endfor %}
</body>
</html>

刷新页面看看效果吧!

第九步:美化页面(可选)

虽然页面能看,但太素了点。你可以给它加个 CSS 文件:

myblog/settings.py 中添加如下内容,启用静态文件支持:

STATIC_URL = '/static/'

在项目根目录创建 static/css/style.css 文件,添加一些样式:

body {
    font-family: Arial, sans-serif;
    margin: 40px;
    background-color: #f4f4f4;
}

h1 {
    color: #333;
}

div {
    background: white;
    padding: 15px;
    border-radius: 8px;
}

再修改 post_list.html,在 <head> 中引入 CSS:

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

别忘了加载静态标签:

{% load static %}
<!DOCTYPE html>
<html>
<head>
    <title>我的博客</title>
    <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
</head>
...

重启服务器后,你现在应该能看到更漂亮的页面啦!


常见问题解答(FAQ)

以下是新手在学习过程中常遇到的问题,我整理了一些常见的疑问与解答:

1. Q:运行服务器时报错,提示模块找不到?

A:检查是否激活了虚拟环境,并且安装了所需的包。运行:

pip install -r requirements.txt

若无此文件,尝试重新安装 django:

pip install django

2. Q:更改了模型后,为什么数据库没有更新?

A:每次模型变化后都必须执行:

python manage.py makemigrations
python manage.py migrate

3. Q:网页不生效或没有样式?

A:可能是缓存导致,清空浏览器缓存或者使用隐身窗口重试。另外确认路径是否正确,尤其是静态文件路径。

4. Q:无法访问 admin 后台?

A:确认已创建超级用户 (createsuperuser) 并使用正确的用户名和密码登录。

5. Q:模板文件放在哪里才有效?

A:Django 默认搜索项目下的 templates 文件夹。确保你的 HTML 文件结构与 TEMPLATES 设置一致,特别是 'DIRS': [os.path.join(BASE_DIR, 'templates')]


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

恭喜你完成了你的第一个 Django 网站!

接下来你可以尝试:

  1. 给每篇文章添加详情页(DetailView)
  2. 添加用户评论功能(Form 表单 + 模型)
  3. 部署你的网站到互联网(Heroku、PythonAnywhere 等平台)
  4. 使用第三方库(如 Bootstrap)提升前端体验
  5. 使用 Django REST framework 构建 API 接口
  6. 学习更多高级主题:用户权限、中间件、缓存、任务队列等

总结

在本篇《Django入门教程:搭建你的第一个Python网站》中,我们一起完成了以下内容:

✅ 安装 Python 和 Django
✅ 理解 Django 的核心概念(MTV 模式)
✅ 创建项目和应用
✅ 操作数据库模型
✅ 编写视图和 URL 路由
✅ 编写 HTML 模板并整合静态资源
✅ 部署后台管理和美化页面

虽然只是一个简单的博客项目,但它为你打开了通向专业后端开发的大门。记住:每一个复杂的网站,最初也只是几个简单的页面!

继续努力,你也可以成为一名优秀的后端开发者 🌟

如果你觉得这篇教程对你有帮助,欢迎点赞、收藏或分享给你的朋友 💡


📌 拓展阅读

评论 0

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