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

霸气_花朵
2025-06-20 14:38
阅读 550

开篇:Django是做什么的?

开篇:Django是做什么的?

如果你是一个完全没有编程基础的小白,第一次听到“Django”,可能会觉得它很神秘。但其实,Django是一个非常有用的工具。简单来说,Django 是一个用 Python 编写的 Web 框架,它的作用是帮助你快速地搭建一个网站或Web应用。

你可以把 Django 想象成是一个“建房工具箱”。假设你要建一座房子,如果你从头开始一块砖一块砖地垒,效率会非常低。而使用 Django,就像是有了现成的墙板、门窗和楼梯——你只需要按照一定的步骤组装,就能很快建好一座功能完整的房子。

Django 之所以受欢迎,是因为它遵循“开箱即用”的理念,内置了许多常用的功能(比如用户登录、数据库管理等),让你更专注于实现自己的想法,而不是重复造轮子。很多知名的网站,比如 Instagram 和 Pinterest,就是基于 Django 构建的。

在这篇教程中,我们将一步一步教你如何使用 Django 搭建你的第一个网站。即使你是零基础的新手,也能轻松上手!

环境准备:搭建开发环境

环境准备:搭建开发环境

要使用 Django,首先我们要准备好开发环境。我们来一步步完成这些安装和配置工作。

第一步:安装 Python

Django 是基于 Python 的框架,所以首先你需要安装 Python

  1. 打开浏览器,访问 https://www.python.org/downloads/
  2. 根据你的操作系统(Windows 或 macOS)下载最新版本的 Python。
  3. 安装时注意勾选 Add Python to PATH(Windows 用户必须勾选这一项)
  4. 安装完成后,在命令行输入以下命令验证是否成功:
    python --version
    
    如果输出类似 Python 3.11.x 的内容,说明安装成功。

新手提示: 在 Windows 上如果出现 python 不是内部命令的问题,可能是没有正确添加到环境变量。可以尝试运行 py --version 来检查。


第二步:安装 pip

pip 是 Python 的包管理工具,可以用来安装 Django。

大多数情况下,安装 Python 时会自动安装 pip。你可以通过以下命令检查:

pip --version

如果看到类似 pip x.x.x from ... 的信息,说明已经安装好了。

如果没有,可以从这里重新安装:https://bootstrap.pypa.io/get-pip.py

下载该文件后,在命令行中运行:

python get-pip.py

第三步:安装 Django

现在我们终于可以安装 Django 了!

在命令行中运行以下命令:

pip install django

安装完成后,可以通过如下命令确认是否成功:

django-admin --version

如果能看到类似 4.2.x 的版本号,恭喜你!你的电脑上现在已经有了 Django 这个“造房子”的工具啦!


核心概念:理解Django的基本结构

核心概念:理解Django的基本结构

在正式写代码之前,我们需要先了解几个关键术语:项目(Project)、应用(App)、MVT模式、URL路由、视图(View)和模板(Template)。我们一一来解释它们。

什么是项目(Project)和应用(App)?

  • 项目(Project):相当于整个网站的总目录,包含所有设置和各种应用。
  • 应用(App):相当于网站中的一个功能模块,比如“博客”、“论坛”、“评论系统”等。一个项目可以包含多个应用。

举个例子:

  • 你在做一个在线书店网站,这个网站整体就是一个 Project。
  • 里面有“商品展示 App”、“购物车 App”、“用户注册 App”等多个小功能模块,这些都是 App。

这种结构有助于代码组织清晰,便于后期维护和扩展。


Django 的 MVT 模式是什么?

Django 使用一种叫 MVT(Model-View-Template) 的架构模式。我们可以把它想象成做蛋糕的过程:

层次 英文名 对应角色 类比
Model 模型层 处理数据(数据库) 蛋糕原料(面粉、鸡蛋)
View 视图层 逻辑处理(怎么烤蛋糕) 烤蛋糕的方法
Template 模板层 页面显示 成品蛋糕的样子

简单地说:

  • Model:负责与数据库打交道,存储和读取数据。
  • View:接收用户的请求,然后返回相应的结果。
  • Template:将数据渲染成好看的网页。

URL路由:网站的入口地图

在现实生活中,每个房间都有一个门牌号,这样才能找到它。在网站中,每个页面也有一个“地址”,这就是我们说的 URL

Django 中的 URL路由(URL Routing) 就像是一个导航地图,告诉程序“当用户访问某个网址的时候,应该去调用哪个视图”。

例如:

urlpatterns = [
    path('hello/', views.hello_view),
]

上面这段代码的意思是:当用户访问 /hello/ 这个网址时,就执行 views.hello_view 这个函数。


视图(View):处理逻辑的地方

视图函数是真正干活的人。它接收来自用户的请求,并决定返回什么样的内容。

一个最简单的视图函数可能长这样:

from django.http import HttpResponse

def hello_view(request):
    return HttpResponse("你好,世界!")

当你访问对应路径时,浏览器就会显示出“你好,世界!”这句话。


模板(Template):漂亮的网页外壳

虽然你可以直接通过视图返回一串文本,但在实际项目中,我们更常用的是 HTML 页面。

为了做到这一点,Django 提供了模板系统。你可以在模板中编写 HTML,并插入动态的数据,让页面看起来更丰富。


到这里为止,我们已经掌握了 Django 的核心知识框架。接下来,我们会通过一个实战项目把这些概念串起来。


实战项目:创建你的第一个网站

现在,让我们动手写一个最简单的网站:一个能显示“Hello World”页面的网站。目标很简单,但会涵盖项目创建、路由配置、视图编写、模板渲染这些流程。

第一步:创建项目(Project)

在命令行中运行:

django-admin startproject mysite

这会在当前目录下新建一个名为 mysite 的文件夹,里面就是我们的项目结构。

进入项目目录:

cd mysite

第二步:启动服务器(测试用)

在项目目录下运行:

python manage.py runserver

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

你应该会看到一个写着 “The install worked successfully! Congratulations!” 的欢迎页面。这意味着我们的项目创建成功啦!

按下 Ctrl+C 可以停止服务器。


第三步:创建应用(App)

我们来创建一个应用,名字叫做 helloapp

python manage.py startapp helloapp

这时你会发现项目目录下多了一个叫 helloapp 的文件夹。

接着我们需要把这个 app 添加到项目的配置中:

打开 mysite/settings.py 文件,在 INSTALLED_APPS 列表中添加一行:

'heloapp',  # 注意拼写错误容易导致报错!

第四步:编写视图函数

打开 helloapp/views.py 文件,修改内容为:

from django.http import HttpResponse

def index(request):
    return HttpResponse("这是我的第一个Django网页!")

第五步:配置URL路由

为了让用户能访问这个视图,我们需要配置URL。

打开 mysite/urls.py 文件,修改内容如下:

from django.contrib import admin
from django.urls import path
from helloapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index),  # 空字符串表示首页
]

这里我们添加了一个路径 '',也就是访问根路径 http://127.0.0.1:8000/ 时,就会触发 views.index 函数。


第六步:再次运行服务器并查看效果

回到命令行,运行服务器:

python manage.py runserver

刷新浏览器,你现在看到的内容应该是我们刚刚写的那段文字:“这是我的第一个Django网页!”

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


第七步:加入模板(Template)优化页面

我们现在只返回了一串纯文本,为了让页面更美观,我们来引入模板。

1. 创建 templates 文件夹

在项目根目录下创建一个 templates 文件夹(通常放在项目主目录下更好统一管理):

mysite/
├── mysite/
├── templates/
│   └── index.html
├── helloapp/
└── manage.py

templates/index.html 中写入:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的第一个网站</title>
</head>
<body>
    <h1>欢迎来到我的网站!</h1>
    <p>{{ message }}</p>
</body>
</html>

这里的 {{ message }} 是一个占位符,稍后我们会从视图传过来具体内容。

2. 修改视图函数,使用模板

修改 helloapp/views.py 内容如下:

from django.shortcuts import render

def index(request):
    context = {
        'message': "今天学习 Django,进步很大!"
    }
    return render(request, 'index.html', context)

现在不再是直接返回文本,而是调用了模板,并且传过去一个 message 字段。

3. 配置模板路径

为了让 Django 找到我们的模板,还需要修改设置。

打开 mysite/settings.py,找到 TEMPLATES 数组,修改 'DIRS' 如下:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / "templates"],
        'APP_DIRS': True,
        'OPTIONS': {
            ...
        },
    },
]

其中 BASE_DIR 是项目的根目录,这样就能定位到 templates 文件夹。

保存后重启服务器,刷新页面,你就能看到一个新的HTML页面啦!


常见问题:新手常遇到的错误及解决办法

1. ImportError: No module named django

原因:Django 没有正确安装或者 Python 环境配置不对。

解决方法

  • 检查是否真的安装了 Django:pip install django
  • 使用 python -m django --version 测试

2. Page Not Found (404) 错误

原因:URL 路由配置不正确或者路径拼错了。

解决方法

  • 检查 urls.py 中的路径是否匹配
  • 确保视图函数已正确导入
  • 清除浏览器缓存或更换无痕模式

3. TemplateDoesNotExist: index.html

原因:模板路径未正确设置或文件不存在。

解决方法

  • 检查 settings.py 中的 TEMPLATES['DIRS'] 是否指向正确位置
  • 检查模板文件是否存在并且名称拼写正确

4. AttributeError: module 'helloapp.views' has no attribute 'index'

原因:视图函数拼写错误或未导入。

解决方法

  • 检查 views.py 中的函数名是否拼写正确
  • 查看 urls.py 中的导入语句是否正确:from helloapp import views

学习建议:下一步可以学什么?

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

接下来你可以沿着以下几个方向继续深入学习:

1. 数据库操作(Model)

  • 学习如何设计数据模型
  • 创建、查询、更新和删除数据记录
  • 用 Django Admin 管理后台管理数据

2. 表单(Forms)

  • 学习如何创建表单类
  • 验证用户输入
  • 实现登录、注册等功能

3. 静态文件管理(Static Files)

  • 添加 CSS、JS、图片资源
  • 设置媒体文件上传支持

4. 用户认证系统

  • 用户注册、登录、注销
  • 权限控制

推荐练习项目:

  • 博客系统
  • 简易商城
  • 任务清单(To-do List)

总结一下

在这篇教程中,我们从零开始:

  1. 安装了 Python、pip 和 Django;
  2. 介绍了 Django 的基本结构(项目、应用、MVT);
  3. 动手创建了一个 Hello World 网站,并加入了模板;
  4. 分析了常见的错误及其解决方案;
  5. 给出了下一步的学习建议。

只要你跟着步骤一步步做下去,相信你一定能感受到编程的乐趣!继续加油吧!🚀

评论 0

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