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

梁浩然
2025-06-28 03:24
阅读 369

开篇:什么是Django?为什么学习它?

开篇:什么是Django?为什么学习它?

Django 是一个用 Python 编写的 后端 Web 框架,它的核心目标是让开发者可以轻松快速地构建功能强大的网站。无论你是想做一个个人博客、电商网站,还是后台管理系统,Django 都能帮助你高效实现。

通俗理解:

  • 后端(Backend)就像是一个“大脑”,负责处理数据和逻辑,比如用户登录、保存文章等。
  • 前端(Frontend)则是“脸面”,展示内容给用户看,比如网页的按钮、颜色、布局。
  • Django 是一个让你专注于“后端开发”的工具包。

为什么选择 Django?

  1. 快速开发:内置了很多常用的功能,如数据库管理、用户验证。
  2. 安全性高:防止常见的漏洞(例如 SQL 注入、跨站攻击)。
  3. 社区活跃:遇到问题能找到大量资料和教程。
  4. 可扩展性强:小项目和大型系统都能胜任。

在本教程中,我们将通过一个 简单的博客网站 来实践学习 Django 的基础操作。如果你是完全零基础的新手,不用担心,我们会从头开始一步步教学。


环境准备:安装Django和必要工具

环境准备:安装Django和必要工具

要开始使用 Django,你需要准备好以下几个基本环境:

第一步:安装 Python

Django 是基于 Python 的框架,所以首先要确保你的电脑上有 Python。大多数操作系统已经预装了 Python,但版本可能不支持最新特性。
推荐安装 Python 3.10 或以上版本。

Windows 用户安装 Python:

  1. 打开浏览器访问 https://www.python.org/downloads/
  2. 下载最新的 Windows 版本安装程序(通常以 .exe 结尾)
  3. 运行安装程序,并记得勾选下方的 "Add to PATH" 选项,这样可以直接用命令运行 Python。
  4. 安装完成后,打开命令提示符(CMD),输入以下命令检查是否成功:
    python --version
    pip --version
    
    如果看到类似 Python 3.11.xpip x.x.x 的输出,则表示安装成功!

Mac/Linux 用户:

  1. 打开终端(Terminal)并输入以下命令查看当前版本:
    python3 --version
    pip3 --version
    
  2. 如果未安装或版本过低,请根据你的系统下载最新版进行安装。

第二步:安装 Django

现在,我们来安装 Django!使用 Python 的包管理器 pip,非常简单。

pip install django

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

django-admin --version

如果显示版本号(例如 4.2.x),说明 Django 已经安装好了 ✅


第三步:创建项目目录

为了方便管理,我们需要为 Django 项目创建一个独立文件夹。这里假设我们要把所有代码放在桌面上的一个新文件夹里,例如 my_django_project

Windows:

mkdir C:\Users\你的用户名\Desktop\my_django_project
cd C:\Users\你的用户名\Desktop\my_django_project

Mac/Linux:

mkdir ~/Desktop/my_django_project
cd ~/Desktop/my_django_project

接下来,我们将在该目录中创建一个新的 Django 项目。


核心概念:Django中的关键术语详解

核心概念:Django中的关键术语详解

Django 有三个最重要的组成部分:项目(Project)应用(App)模型(Model)。我们逐个介绍,帮助你建立对整个框架的基本理解。

1. 什么是 Django 项目?

你可以把 Django 项目想象成一个完整的网站容器,里面可以包含多个不同的子功能模块(也就是应用)。每个项目有一个配置文件 settings.py,用来控制全局设置,比如数据库连接方式、静态资源位置等等。

创建项目的命令:

django-admin startproject mysite .

注意最后有个点(.),这是告诉 Django 把项目直接生成在当前目录下,而不是再建一个额外的文件夹。

执行完成后,你会发现 my_django_project 文件夹内出现了以下文件结构:

mysite/
    __init__.py
    settings.py
    urls.py
    wsgi.py
manage.py

这些文件的作用简要如下:

  • settings.py: 整个项目的全局配置文件。
  • urls.py: URL 路由配置,决定哪个网址对应什么页面。
  • manage.py: Django 提供的一个命令行工具,用来执行各种任务(比如启动服务器、同步数据库等)。

2. 什么是 Django 应用?

应用是你实际开发功能的地方。我们可以将整个网站划分成多个小应用,比如「用户登录」、「新闻发布」、「留言评论」等功能块各自都是独立的应用。

创建第一个应用的命令:

python manage.py startapp blog

这会在项目文件夹中新增一个名为 blog 的目录,里面有以下主要文件:

blog/
    migrations/
    admin.py
    apps.py
    models.py
    tests.py
    views.py

其中:

  • views.py: 处理用户的请求并返回响应(相当于“控制器”)。
  • models.py: 数据库模型定义(相当于“数据库结构”)。
  • admin.py: 可视化管理员后台配置。
  • urls.py: 单个应用自己的路由规则(后面会详细介绍)。

小贴士:Django 中约定一个应用只专注完成一个特定任务。因此,对于一个复杂网站来说,可能会有许多个 app!


3. 什么是模型(Model)?

模型(Model)是用来描述数据库中一张表的数据结构。你可以把它想象成一张表格的“蓝图”。举个例子,如果我们有一个博客系统,那么一篇文章可能包含以下字段:

  • 文章标题(title)
  • 内容(content)
  • 发布时间(pub_date)

示例:创建一个 BlogPost 模型

编辑 blog/models.py 文件,添加如下代码:

from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)  # 标题,最大长度200字符
    content = models.TextField()              # 内容
    pub_date = models.DateTimeField(auto_now_add=True)  # 发布日期

    def __str__(self):
        return self.title

这段代码描述了数据库的一张表(BlogPost)及其各个字段。


实战项目:动手开发你的第一个 Django 网站 —— 简易博客系统

实战项目:动手开发你的第一个 Django 网站 —— 简易博客系统

现在我们已经了解了基本概念,下一步就是实战演练,构建一个简单的博客网站。我们将一步一步实现以下功能:

  1. 添加首页,展示所有博客文章列表;
  2. 创建添加新文章的功能;
  3. 显示每篇文章的详细内容。

步骤一:注册应用

新建的应用需要在主项目中注册才能生效。打开 mysite/settings.py,找到 INSTALLED_APPS 列表,在其中加入 blog.apps.BlogConfig,结果如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog.apps.BlogConfig',  # 新增这一行
]

保存后即可激活 blog 应用。


步骤二:创建数据库表

Django 使用 迁移机制 来更新数据库结构。当你修改模型时,Django 会自动生成对应的数据库变化脚本。

执行迁移:

python manage.py makemigrations blog
python manage.py migrate

第一条命令 makemigrations 会生成数据库变更记录,第二条 migrate 则将其应用到数据库中。


步骤三:创建超级用户账户

为了让我们可以使用 Django 自带的后台管理界面,需要先创建一个管理员账号:

python manage.py createsuperuser

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


步骤四:配置管理员后台

我们希望可以通过后台界面查看和管理博客文章。

编辑 blog/admin.py,添加以下代码:

from django.contrib import admin
from .models import BlogPost

admin.site.register(BlogPost)

然后启动本地服务器:

python manage.py runserver

访问 http://127.0.0.1:8000/admin,使用刚才创建的管理员账号登录,进入后台后点击「Blog posts」 -> 「Add」添加几篇测试文章吧 ✨


步骤五:编写首页视图

现在,我们开始编写前端页面。首先,回到 blog/views.py 编写一个函数,用于获取所有文章并在首页展示:

from django.shortcuts import render
from .models import BlogPost

def index(request):
    latest_blog_list = BlogPost.objects.order_by('-pub_date')[:5]
    context = {'latest_blog_list': latest_blog_list}
    return render(request, 'blog/index.html', context)

这个函数从数据库中获取最近发布的5篇文章,并将其传递给模板 index.html 渲染显示。

接着,在 blog 目录下新建一个模板目录路径:

/blog/templates/blog/index.html

index.html 文件中写上以下 HTML 内容:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>我的博客</title>
</head>
<body>
    <h1>欢迎来到我的博客</h1>
    
    {% if latest_blog_list %}
        <ul>
            {% for blog in latest_blog_list %}
                <li>{{ blog.title }} - {{ blog.pub_date }}</li>
            {% endfor %}
        </ul>
    {% else %}
        <p>还没有任何文章。</p>
    {% endif %}
</body>
</html>

这是一个非常简单的首页,展示了最新的文章标题和发布日期。


步骤六:配置 URL

为了让这个页面能被访问到,我们需要配置 URL 路由。

blog 文件夹中新建一个 urls.py 文件(之前创建应用时已存在),编辑内容如下:

from django.urls import path
from . import views

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

然后打开主项目的 mysite/urls.py 文件,更新内容如下:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

这样,当我们访问 /blog/ 路径时,就会调用 blog.urls 中配置的 index 函数,显示我们刚刚创建的首页。


最终效果

重启服务后,访问 http://localhost:8000/blog/,你应该能看到你添加的文章列表啦 🎉


常见问题解答(FAQ)

  1. Q:安装失败怎么办?

    • A:确认使用的是 Python 3 且 pip 版本正常。有时网络不好可能导致下载失败,可以尝试换源:pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
  2. Q:访问 localhost:8000 页面空白怎么回事?

    • A:可能是没有正确配置路由或视图。请检查 urls.pyviews.py 是否匹配正确路径。
  3. Q:如何在页面中展示更多文章信息(如内容摘要)?

    • A:在模板中使用变量标签 {% for %} 循环遍历所有文章,然后显示具体字段。
  4. Q:修改模型后数据库没变怎么办?

    • A:每次修改完模型都要运行 makemigrationsmigrate 命令来更新数据库结构。
  5. Q:能否美化我的网页?

    • A:当然可以!Django 支持 HTML、CSS、JavaScript。后续可以学习使用 Bootstrap、Tailwind CSS 等 UI 框架来美化页面。

学习建议:继续深入学习的方向

微服务架构示意图-1

恭喜你完成了 Django 的第一个小项目!接下来你可以尝试扩展以下内容:

  1. 增加详情页:点击首页标题跳转到单篇文章页面。
  2. 使用静态文件(CSS / JS):美化网站外观。
  3. 表单提交功能:让用户能自己发布文章(可使用 Django Form 表单类)。
  4. 用户认证与权限控制:区分管理员和普通访客的操作权限。
  5. 部署上线:将网站部署到真实服务器(如 Heroku、Nginx+uwsgi)

推荐学习资源:

只要你坚持每天学一点、练一点,相信你很快就能成为一个能独立开发网站的程序员!🌟


结尾寄语:
Django 是一个强大而友好的框架,虽然一开始可能看起来有些复杂,但它极大的减少了重复工作。记住一句话:“最好的学习方式就是边做边学。” 动手试试吧,你的第一个网站正在等待你完成!💡

评论 0

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