Django入门教程:搭建你的第一个Python网站
开篇:Django是什么?用来做什么?

在如今这个信息时代,越来越多的人希望用互联网技术来实现自己的想法。而如果你想搭建一个网站,Django 就是一个非常适合的工具!
Django 是什么?
Django 是一个基于 Python 的开源 Web 框架,它可以帮助开发者快速创建功能强大的网站和应用程序。Django 提供了许多内置的功能(例如用户认证、数据库管理等),让开发者无需从零开始构建这些复杂的功能。
Django 用来做什么?
- 创建博客、论坛、电子商务平台等网站。
- 开发内容管理系统(CMS)或社交媒体应用。
- 管理数据并提供交互式的用户界面。
如果你对编程感兴趣,想了解如何用代码搭建一个真正的网站,那么这篇教程就是为你准备的!我们将从零基础开始,一步步教你使用 Django 搭建一个简单的网站。
环境准备:搭建开发环境

在开始编写代码之前,我们需要先准备好开发环境。以下是具体步骤:
1. 安装 Python
Django 是基于 Python 的框架,所以首先要确保你电脑上安装了 Python。
- Windows 用户:访问 Python官网 下载并安装最新版本的 Python。
- Mac 用户:打开终端并运行以下命令检查是否已安装 Python:
如果没有安装,可以通过 Homebrew 安装:python3 --versionbrew install python3。 - Linux 用户:大多数 Linux 发行版自带 Python,运行
python3 --version验证即可。
2. 安装虚拟环境
为了防止项目依赖冲突,我们使用虚拟环境隔离每个项目的依赖。
创建虚拟环境
python3 -m venv myenv
激活虚拟环境
- Windows:
myenv\Scripts\activate - Mac/Linux:
source myenv/bin/activate
激活后,你会发现命令行前多了 (myenv),表示当前处于虚拟环境中。
3. 安装 Django
在虚拟环境中运行以下命令安装 Django:
pip install django
验证安装成功:
django-admin --version
如果看到版本号输出(例如 4.2.5),说明安装成功。
核心概念:理解 Django 的基本架构


在正式开始实战前,让我们先简单了解一下 Django 的一些核心概念。
1. MVC 模式
Django 使用的是类似 MVC(Model-View-Controller)的设计模式,但更准确地说是 MTV(Model-Template-View):
- Model(模型):负责处理数据逻辑,通常与数据库相关。
- Template(模板):定义网页的结构和样式。
- View(视图):连接 Model 和 Template,处理用户请求并返回响应。
2. URL 路由
URL 路由是 Django 中的核心机制之一。它定义了不同的 URL 应该如何映射到对应的视图函数。
3. 数据库支持
Django 内置了一个对象关系映射(ORM)系统,可以方便地操作数据库,而无需直接写 SQL。
实战项目:搭建你的第一个 Django 网站

现在,我们将通过一个具体的例子——一个简单的“待办事项”列表,来学习如何用 Django 创建一个完整的网站。
1. 创建 Django 项目
首先,在虚拟环境中运行以下命令创建一个新的 Django 项目:
django-admin startproject todo_project
这会在当前目录下生成一个名为 todo_project 的文件夹。进入该文件夹:
cd todo_project
2. 运行开发服务器
确保你在虚拟环境中,然后运行以下命令启动 Django 内置的开发服务器:
python manage.py runserver
打开浏览器并访问 http://127.0.0.1:8000/,你应该会看到欢迎页面。
3. 创建应用
在 Django 中,项目是由多个“应用”组成的。每个应用专注于完成特定功能。
创建一个名为 tasks 的应用:
python manage.py startapp tasks
将 tasks 添加到项目的配置中。打开 todo_project/settings.py 文件,在 INSTALLED_APPS 列表中添加:
'tasks',
4. 定义模型(Model)
接下来,我们定义一个数据模型来存储待办事项。
编辑 tasks/models.py 文件,添加以下内容:
from django.db import models
class Task(models.Model):
title = models.CharField(max_length=200)
completed = models.BooleanField(default=False)
def __str__(self):
return self.title
这段代码定义了一个 Task 模型,包含两个字段:
title:任务标题。completed:布尔值,表示任务是否已完成。
同步数据库:
python manage.py makemigrations
python manage.py migrate
5. 创建视图(View)
视图是处理用户请求并返回响应的地方。在 tasks/views.py 中编写以下代码:
from django.shortcuts import render, redirect
from .models import Task
def index(request):
tasks = Task.objects.all()
return render(request, 'index.html', {'tasks': tasks})
def add_task(request):
if request.method == 'POST':
title = request.POST.get('title')
Task.objects.create(title=title)
return redirect('index')
return render(request, 'add_task.html')
这里我们定义了两个视图函数:
index:显示所有任务。add_task:添加新任务。
6. 定义 URL 路由
在 tasks/urls.py 中定义路由规则。首先创建文件并添加以下内容:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('add/', views.add_task, name='add_task'),
]
接着,在项目主路由文件中引入应用路由。打开 todo_project/urls.py,修改为:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('tasks.urls')),
]
7. 创建模板(Template)
Django 使用模板来渲染 HTML 页面。
创建模板文件夹
在 tasks 文件夹下创建 templates 文件夹,并在其中创建两个模板文件:
index.htmladd_task.html
编辑 index.html
<!DOCTYPE html>
<html>
<head>
<title>待办事项</title>
</head>
<body>
<h1>待办事项列表</h1>
<ul>
{% for task in tasks %}
<li>{{ task.title }} - {{ task.completed }}</li>
{% endfor %}
</ul>
<a href="/add/">添加任务</a>
</body>
</html>
编辑 add_task.html
<!DOCTYPE html>
<html>
<head>
<title>添加任务</title>
</head>
<body>
<h1>添加新任务</h1>
<form method="post">
{% csrf_token %}
<input type="text" name="title" placeholder="输入任务名称">
<button type="submit">保存</button>
</form>
<a href="/">返回首页</a>
</body>
</html>
8. 运行并测试
重新启动开发服务器:
python manage.py runserver
访问 http://127.0.0.1:8000/ 测试你的网站!
常见问题
新手在学习过程中可能会遇到一些问题,以下是一些常见问题及解决方案:
问题:运行
python manage.py runserver报错- 原因:可能是虚拟环境未正确激活或 Django 未安装。
- 解决方法:确保虚拟环境已激活并重新安装 Django。
问题:无法访问 localhost
- 原因:端口可能被占用。
- 解决方法:尝试指定其他端口,例如
python manage.py runserver 8080。
问题:模板找不到
- 原因:模板路径未正确配置。
- 解决方法:检查
TEMPLATES设置中的DIRS是否指向正确的模板路径。
学习建议:下一步学习路径
恭喜你完成了第一个 Django 网站!接下来,你可以尝试以下方向进一步提升:
- 深入学习 Model 和 ORM:掌握更复杂的数据库查询操作。
- 学习表单处理:利用 Django 内置的 Form 类简化用户输入处理。
- 探索用户认证系统:实现登录、注册等功能。
- 部署到线上:学习如何将 Django 网站部署到服务器。
推荐学习资源:
- Django 官方文档:https://docs.djangoproject.com
- 《Django 速成》:适合初学者的入门书籍。
希望这篇教程对你有所帮助!祝你在 Django 的学习之路上越走越远!

评论 0