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

你好,欢迎来到本教程!无论你是刚刚开始学习编程,还是想掌握一个实用的后端开发工具,这篇《Django入门教程》都适合你。
Django 是什么?简单来说,它是一个基于 Python 的 Web 开发框架。你可以把它理解为一套“建筑模板”,有了这个模板,我们就可以更高效、更规范地搭建功能齐全的网站和 Web 应用。
为什么选择 Django?
- 简洁易上手:它的设计哲学是 “尽可能减少重复劳动”,很多功能已经帮你准备好了。
- 功能全面:自带了数据库操作(ORM)、用户认证、后台管理等模块,不需要额外安装很多东西就能开始开发。
- 社区强大:遇到问题时,网上能找到大量资源,官方文档也非常详细。
- 适合初学者:因为结构清晰,特别适合第一次做网站开发的新手。
在接下来的教程中,我们将一步步从零开始搭建一个简单的个人博客网站,让你快速了解并掌握 Django 的基本用法。
环境准备:一步步搭建开发环境

第一步:安装 Python
Django 是基于 Python 的框架,因此我们需要先在电脑上安装 Python。请按照你的系统下载对应的版本:
- Windows 用户可以访问 https://www.python.org/
- Mac 用户通常已有 Python,但建议使用最新版本(可通过 Homebrew 安装)
安装完成后,在命令行输入以下命令来验证是否成功:
python --version
如果看到类似 Python 3.8.x 或更高版本信息,说明安装成功!
📝 如果显示的是
python找不到,可以尝试使用python3替代。
第二步:创建虚拟环境(Virtual Environment)
虚拟环境就像每个项目的独立工作间,可以避免不同项目之间的依赖冲突。
运行下面的命令来创建一个新虚拟环境:
python -m venv myproject_env
激活虚拟环境:
- Windows:
myproject_env\Scripts\activate - Mac/Linux:
source myproject_env/bin/activate
激活之后,你的命令行前会出现 (myproject_env) 字样,表示你现在处于隔离环境中。
第三步:安装 Django
现在我们可以在虚拟环境中安装 Django:
pip install django
然后验证一下 Django 是否安装成功:
django-admin --version
如果你看到一个版本号(例如 4.2.5),就说明安装完成了!
核心概念讲解:什么是网站开发的关键点?
为了帮助你更好地理解接下来的实战内容,我们先来介绍几个 Django 的核心概念,并用通俗的语言来解释它们。

🧱 项目(Project) 和 应用(App)
- 项目(Project):是一个完整的网站工程,可能由多个应用组成。比如一个电商网站可能会有 "商品"、"用户"、"订单" 这三个App。
- 应用(App):每一个 App 实现一个独立的功能模块。例如,在博客网站里,我们可以有一个 BlogApp 来处理文章相关的功能。
🗃️ 数据库模型(Model)
模型就是一张表格的“蓝图”。例如我们要存储博客文章,就需要定义一个模型描述每篇文章有哪些字段,如标题、作者、正文、发布时间等。
🖼️ 模板(Template)
模板决定网页的外观,也就是 HTML 页面如何展示数据。Django 使用一种专门的语法将变量或逻辑嵌入到 HTML 中。
🚪 视图(View)与 路由(URLconf)
- 视图负责处理请求(例如用户访问某个页面),并返回响应(通常是 HTML 页面或 JSON 数据)。
- 路由就像是地图,告诉 Django 当用户访问某个网址时,应该去调用哪个 View 来处理。
这些抽象的概念会在后续实战中更加具体化。别担心记不住,我们马上通过实践来加深理解。
实战项目:一步一步搭建你的第一个博客网站
让我们一起来构建一个简单的博客网站,支持添加和浏览文章。这个过程包括以下几个步骤:
一、创建项目与应用
进入你想存放代码的目录,执行如下命令:
django-admin startproject myblog_project
cd myblog_project
上面这句命令创建了一个名为 myblog_project 的项目。现在我们再创建一个名字叫 blog_app 的应用:
python manage.py startapp blog_app
接着我们需要把这个应用注册进项目中。打开 myblog_project/settings.py 文件,找到 INSTALLED_APPS 列表,加入一行:
'blog_app',
保存文件后继续下一步。
二、定义模型:设计数据结构
打开 blog_app/models.py 文件,修改成如下内容:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.title
这段代码定义了一个叫 Post 的类,它对应数据库的一张表,包含了标题(title)、正文(content)和发布日期(pub_date)这几个字段。
🔍 注意:CharField 长度有限制,TextField 不限制长度;DateTimeField 带时间。
接下来执行两个命令让 Django 创建数据库和表:
python manage.py makemigrations blog_app
python manage.py migrate
三、创建后台管理接口
我们可以通过 Django 提供的后台管理界面来方便地添加文章。
首先创建管理员账号:
python manage.py createsuperuser
按提示输入用户名、邮箱和密码。创建完成后启动服务器:
python manage.py runserver
在浏览器访问 http://127.0.0.1:8000/admin,登录刚才设置的账号。
但你会发现还没有看到我们的 Post 表。我们需要把模型注册进后台。打开 blog_app/admin.py,修改为:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
刷新后台页面,就可以看到“Posts”了!
四、编写视图与模板:显示博客内容
创建视图函数
编辑 blog_app/views.py 文件,写入如下内容:
from django.shortcuts import render
from .models import Post
def index(request):
posts = Post.objects.order_by('-pub_date')
return render(request, 'blog_app/index.html', {'posts': posts})
这段代码的意思是:获取所有文章,并按发布日期倒序排列(最新的排最前面),然后传递给一个叫 index.html 的模板进行渲染。
配置 URL 路由
在 blog_app 目录下新建一个文件 urls.py,内容如下:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
再打开项目目录下的 myblog_project/urls.py,将其内容改成:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog_app.urls')),
]
这样访问 /blog/ 就会调用 blog_app 中的路由规则。
创建模板
在 blog_app 下创建 templates/blog_app 文件夹,并新建 index.html 文件:
blog_app/
├── templates/
│ └── blog_app/
│ └── index.html
在 index.html 里写下如下内容:
<!DOCTYPE html>
<html>
<head>
<title>我的博客</title>
</head>
<body>
<h1>我的博客文章</h1>
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
<small>{{ post.pub_date }}</small>
<hr />
{% endfor %}
</body>
</html>
现在再次运行服务:
python manage.py runserver
访问 http://127.0.0.1:8000/blog/,你应该能看到一个简单的博客首页!
你可以试着通过后台添加一些文章来看看效果。
常见问题解答

❓Q1:报错:ModuleNotFoundError: No module named 'blog_app'
📌 解答:可能是你忘记在 INSTALLED_APPS 里注册这个应用,请检查 settings.py 文件。
❓Q2:无法连接数据库或迁移失败?
📌 解答:可能是数据库配置不正确或者未正确运行 makemigrations / migrate。Django 默认使用 SQLite,对于新手来说是最安全的选择。
❓Q3:运行服务器时出现错误:“Port 8000 is already in use”
📌 解答:另一个进程占用了 8000 端口,可以换其他端口启动服务器:
python manage.py runserver 8001
访问 http://localhost:8001/blog/ 即可。
❓Q4:页面显示为空白,没有文章内容?
📌 解答:请确认你是否已经通过 Admin 添加了 Post 数据,并且 views.py 中的查询逻辑正确。
学习建议:接下来可以学什么?
恭喜你完成了第一个 Django 项目!这是迈向 Web 后端开发的一大步。为了更进一步,建议你继续深入学习以下几个方向:
✅ 基础巩固
- 深入研究 Django 的 Model 层:多对一、多对多关系处理
- 学习 Form(表单)功能,实现用户提交内容
- 掌握模板继承,提高 HTML 模板复用率
🌐 功能扩展
- 使用 Bootstrap 框架美化前端样式
- 配置静态资源(CSS、图片、JavaScript)
- 添加评论系统
🛠️ 性能与部署
- 学习 Gunicorn + Nginx 部署网站上线
- 尝试连接 MySQL 或 PostgreSQL 生产级数据库
- 学会用 Git 进行版本控制与项目协作
如果你想进一步挑战项目,试着做一个带用户登录注册功能的完整博客系统吧!
小结回顾
在这篇面向零基础初学者的《Django入门教程》中,我们一起完成了以下事情:
- 安装 Python 并搭建 Django 开发环境
- 介绍了项目(Project)、应用(App)、模型(Model)、视图(View)、模板(Template) 等核心概念
- 亲手搭建了一个可以添加和展示文章的博客网站
- 解决了一些常见问题,给出了进阶学习路线
Django 是一个非常强大的框架,它不仅能简化开发流程,还能帮助我们写出结构清晰、可维护性强的代码。希望这篇教程能点燃你对 Web 开发的热情!
如果你喜欢这篇文章,也可以分享给更多刚入门的同学一起进步。如有任何疑问,欢迎留言提问!
祝你编程愉快 😊

评论 0