Django入门教程:搭建你的第一个Python网站
开篇:什么是Django?为什么学习它?

Django 是一个用 Python 编写的 后端 Web 框架,它的核心目标是让开发者可以轻松快速地构建功能强大的网站。无论你是想做一个个人博客、电商网站,还是后台管理系统,Django 都能帮助你高效实现。
通俗理解:
- 后端(Backend)就像是一个“大脑”,负责处理数据和逻辑,比如用户登录、保存文章等。
- 前端(Frontend)则是“脸面”,展示内容给用户看,比如网页的按钮、颜色、布局。
- Django 是一个让你专注于“后端开发”的工具包。
为什么选择 Django?
- 快速开发:内置了很多常用的功能,如数据库管理、用户验证。
- 安全性高:防止常见的漏洞(例如 SQL 注入、跨站攻击)。
- 社区活跃:遇到问题能找到大量资料和教程。
- 可扩展性强:小项目和大型系统都能胜任。
在本教程中,我们将通过一个 简单的博客网站 来实践学习 Django 的基础操作。如果你是完全零基础的新手,不用担心,我们会从头开始一步步教学。
环境准备:安装Django和必要工具

要开始使用 Django,你需要准备好以下几个基本环境:
第一步:安装 Python
Django 是基于 Python 的框架,所以首先要确保你的电脑上有 Python。大多数操作系统已经预装了 Python,但版本可能不支持最新特性。
推荐安装 Python 3.10 或以上版本。
Windows 用户安装 Python:
- 打开浏览器访问 https://www.python.org/downloads/
- 下载最新的 Windows 版本安装程序(通常以
.exe结尾) - 运行安装程序,并记得勾选下方的 "Add to PATH" 选项,这样可以直接用命令运行 Python。
- 安装完成后,打开命令提示符(CMD),输入以下命令检查是否成功:
如果看到类似python --version pip --versionPython 3.11.x和pip x.x.x的输出,则表示安装成功!
Mac/Linux 用户:
- 打开终端(Terminal)并输入以下命令查看当前版本:
python3 --version pip3 --version - 如果未安装或版本过低,请根据你的系统下载最新版进行安装。
第二步:安装 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 有三个最重要的组成部分:项目(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 网站 —— 简易博客系统

现在我们已经了解了基本概念,下一步就是实战演练,构建一个简单的博客网站。我们将一步一步实现以下功能:
- 添加首页,展示所有博客文章列表;
- 创建添加新文章的功能;
- 显示每篇文章的详细内容。
步骤一:注册应用
新建的应用需要在主项目中注册才能生效。打开 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)
Q:安装失败怎么办?
- A:确认使用的是 Python 3 且
pip版本正常。有时网络不好可能导致下载失败,可以尝试换源:pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
- A:确认使用的是 Python 3 且
Q:访问 localhost:8000 页面空白怎么回事?
- A:可能是没有正确配置路由或视图。请检查
urls.py和views.py是否匹配正确路径。
- A:可能是没有正确配置路由或视图。请检查
Q:如何在页面中展示更多文章信息(如内容摘要)?
- A:在模板中使用变量标签
{% for %}循环遍历所有文章,然后显示具体字段。
- A:在模板中使用变量标签
Q:修改模型后数据库没变怎么办?
- A:每次修改完模型都要运行
makemigrations和migrate命令来更新数据库结构。
- A:每次修改完模型都要运行
Q:能否美化我的网页?
- A:当然可以!Django 支持 HTML、CSS、JavaScript。后续可以学习使用 Bootstrap、Tailwind CSS 等 UI 框架来美化页面。
学习建议:继续深入学习的方向

恭喜你完成了 Django 的第一个小项目!接下来你可以尝试扩展以下内容:
- 增加详情页:点击首页标题跳转到单篇文章页面。
- 使用静态文件(CSS / JS):美化网站外观。
- 表单提交功能:让用户能自己发布文章(可使用 Django Form 表单类)。
- 用户认证与权限控制:区分管理员和普通访客的操作权限。
- 部署上线:将网站部署到真实服务器(如 Heroku、Nginx+uwsgi)
推荐学习资源:
- Django 官方文档中文版
- 《Django Girls 教程》——适合入门者
- Bilibili 上的 Django 视频课程
只要你坚持每天学一点、练一点,相信你很快就能成为一个能独立开发网站的程序员!🌟
结尾寄语:
Django 是一个强大而友好的框架,虽然一开始可能看起来有些复杂,但它极大的减少了重复工作。记住一句话:“最好的学习方式就是边做边学。” 动手试试吧,你的第一个网站正在等待你完成!💡

评论 0