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

在当今的互联网时代,我们每天都在使用各种网站和应用程序。你有没有想过,这些看似复杂的网页是怎么做出来的?其实,很多优秀的网站都是用一种叫做 框架(Framework) 的工具来开发的。而今天我们要介绍的主角——Django 就是这样一个强大的 Web 开发框架,它是由 Python 语言编写的,非常受开发者欢迎。
什么是 Django?
你可以把 Django 想象成一个“建房子”的工具包。想象你要盖一栋房子,如果从零开始一块砖一块砖地垒,那会非常慢。但如果你有一个现成的施工队、建筑模板、水电图纸,你会轻松很多。Django 就像是这个“施工工具包”,帮你快速搭建出一个完整的网站结构,不需要重复造轮子。
Django 是一个开源的 Web 框架,专门用于构建动态网站和网络应用。它内置了数据库管理、用户认证、页面路由等许多功能,可以让你更专注于业务逻辑,而不是基础设置。
Django 可以用来做什么?
Django 几乎可以做任何类型的网站开发。比如:
- 博客系统
- 电商网站
- 内容管理系统(CMS)
- 社交平台
- 管理后台系统
它的优势在于“开箱即用”(即很多功能已经内置),非常适合中大型项目,同时也有大量文档和社区支持,新手也能很快上手。
在本篇文章中,我们将一步步带你用 Django 创建你的第一个网站。无论你是否接触过编程,只要你愿意动手尝试,都能顺利完成!
环境准备:安装必要的工具

在正式学习 Django 之前,我们需要先准备好开发环境。对于初学者来说,这个过程可能会有点陌生,别担心,我会一步步引导你完成安装和配置。
安装 Python
Django 是基于 Python 的框架,所以我们首先要确保电脑上安装了 Python。目前最新的稳定版本是 Python 3.x,推荐使用 Python 3.8 或更高版本。
步骤如下:
- 打开浏览器,访问 https://www.python.org/downloads/
- 点击 “Download Python 3.x” 下载适合你操作系统的版本(Windows/macOS/Linux)
- 双击下载的安装文件运行安装程序
- 在安装界面中,请务必勾选 Add Python to PATH(Windows 用户),然后点击 Install Now
- 安装完成后,在命令行工具(Windows 用 CMD,macOS/Linux 用 Terminal)输入以下命令确认是否安装成功:
python --version
或者如果你发现 python 命令无法使用,也可以试试:
python3 --version
正常情况下应该能看到类似这样的输出:
Python 3.10.4
说明 Python 已经安装成功。
安装 Django
接下来,我们来安装 Django。这里我们会使用 Python 自带的包管理工具 pip 来安装 Django。
步骤如下:
- 打开命令行工具(Windows 使用 CMD,macOS/Linux 使用 Terminal)
- 输入以下命令来安装 Django 最新稳定版:
pip install django
等待片刻后,Django 就会下载并自动安装好。
- 验证一下是否安装成功,输入:
django-admin --version
你应该会看到类似这样的输出:
4.2.6
这表示 Django 已经安装完成啦!
📌 注意:有些操作系统可能默认将 pip 命令命名为
pip3,此时应使用:pip3 install django
安装代码编辑器
虽然我们可以用记事本写 Python 代码,但那样效率很低。为了方便开发和调试,我们建议使用专业的代码编辑器。以下是两个比较适合初学者的代码编辑器推荐:
1. Visual Studio Code(简称 VS Code)
这是微软出品的一款免费且功能强大的编辑器,支持 Python 插件,非常适合写 Django 项目。
下载地址:
https://code.visualstudio.com/
安装完成后,打开 VS Code → 点击左侧最下方齿轮图标 → Extensions → 搜索 “Python” 并安装官方插件。
2. PyCharm(社区版)
PyCharm 是 JetBrains 推出的专业 Python IDE,社区版是免费的,非常适合 Django 开发。
下载地址:
https://www.jetbrains.com/pycharm/download/
这两个工具都很好用,任选其一即可。
配置虚拟环境(可选但推荐)
为了避免不同项目之间的依赖冲突,我们通常会为每个项目创建一个独立的环境,这就是所谓的“虚拟环境”。
创建虚拟环境步骤:
- 进入你想存放项目的文件夹,例如:
cd Desktop
mkdir myproject
cd myproject
- 创建虚拟环境:
python -m venv venv
这会在当前目录下创建一个名为 venv 的虚拟环境文件夹。
- 激活虚拟环境:
- Windows 上执行:
venv\Scripts\activate
激活后命令行前面会出现 (venv) 表示已进入虚拟环境。
- macOS / Linux 上执行:
source venv/bin/activate
- 然后在这个环境中安装 Django:
pip install django
这样我们就有了一个干净的开发环境,不会影响其他项目。
现在,所有准备工作都已经完成!让我们一起迎接 Django 的第一课吧!
核心概念:理解 Django 的关键组成部分

Django 拥有清晰的结构和丰富的功能模块。即使你是第一次接触它,也不用担心,我们可以像搭积木一样,一步步认识它的核心组件。下面我来给你介绍几个最关键的模块以及它们的作用。
项目结构(Project Structure)
当你用 Django 创建一个网站时,最先生成的就是一个 项目(Project)。项目就像一个容器,包含了整个网站的所有内容和配置。一个项目可以包含多个应用(App)。
举个例子:假设你要做一个博客网站,那么整个项目就叫 blog_project,里面可以有“文章管理”、“用户注册”、“评论系统”等多个小功能模块,每一个都属于不同的 app。
常见的项目结构大致如下:
blog_project/
├── blog_project/ # 项目的主配置目录
│ ├── __init__.py # 初始化文件
│ ├── settings.py # 全局配置文件
│ ├── urls.py # 路由配置
│ └── wsgi.py # 服务器启动配置
└── manage.py # 命令行管理工具
你可以把它想象成一本书的封面和目录,里面的内容则是具体的章节(也就是 apps)。
应用(App)
在 Django 中,“应用(App)”指的是一个功能模块。比如说,一个新闻网站可能包含文章发布(news_app)、用户账号(user_app)、广告展示(ad_app)等等。每一个 App 都是一个相对独立的小单元,可以根据需要单独开发、测试和部署。
要创建一个新的 App,我们只需要运行如下命令:
python manage.py startapp myapp
这条命令就会在项目中生成一个名为 myapp 的新应用文件夹,其中包括以下几个重要文件:
models.py:定义数据库结构(后面我们会详细讲)views.py:处理网页请求,返回页面内容urls.py:配置当前应用的 URL 路由admin.py:与后台管理相关的配置
也就是说,每个 App 都拥有自己的数据模型、视图、路由和管理功能。这种模块化的设计让整个项目变得清晰、易于维护。
数据库(Database)
Django 默认使用 SQLite 数据库,这是一种轻量级的数据库,非常适合学习阶段使用。当然,你也可以换为 PostgreSQL、MySQL 等更强大的数据库。
数据库主要用于存储网站的数据,例如用户的资料、文章内容、留言信息等等。
在 Django 中,我们通过 models.py 文件来定义数据库表结构。例如:
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
pub_date = models.DateTimeField('date published')
这段代码的意思是:创建一个名叫 Article 的数据模型,表示一篇文章。它有三个字段:标题(title)、内容(content)和发布时间(pub_date)。Django 会根据这些定义,自动生成对应的数据库表格。是不是很方便?
路由(URL Routing)
路由就像是网站的“地图”。你输入网址,网站怎么知道该显示哪个页面?就是靠路由来告诉它。
Django 的路由配置是在 urls.py 文件里完成的。比如你可以这样写:
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello_view),
]
这段代码表示当用户访问 /hello/ 这个路径时,Django 会调用 views.hello_view 这个函数来生成页面内容。后面的章节我们会具体演示怎么编写和测试路由。
视图(View)
视图(View)是我们编写页面逻辑的地方。你可以把它理解为“页面处理器”。当用户访问某个 URL,Django 就会去调用相应的视图函数,并返回页面给用户。
视图函数一般写在 views.py 中。例如:
from django.http import HttpResponse
def hello_view(request):
return HttpResponse("你好,世界!")
当你访问 /hello/ 页面时,就会看到页面显示:“你好,世界!”是不是很神奇?我们将在下一节实战部分中详细讲解视图的使用方法。
总结
为了让这些概念更清楚,我们来做个总结:
| 模块 | 功能描述 |
|---|---|
| Project | 整个网站的主结构,包含全局配置 |
| App | 功能模块,实现具体业务逻辑 |
| Database | 存储网站数据 |
| URL Routing | 映射网址和对应的视图 |
| View | 处理请求并返回响应 |
掌握了这些基本概念之后,你就对 Django 的整体架构有了初步的理解。接下来,我们就要动手实践了!
实战项目:用 Django 创建你的第一个网站

现在我们已经了解了 Django 的基本概念,接下来就开始动手创建你的第一个网站吧!我们将通过一个简单的“Hello World”网页来演示如何新建项目、添加 App、编写视图和路由,并最终在浏览器中看到结果。
第一步:创建项目
我们先从创建一个 Django 项目开始。打开命令行工具(CMD/Terminal),进入你希望存放项目的目录,比如桌面:
cd Desktop
然后使用 Django 提供的管理工具创建一个新项目:
django-admin startproject hello_project
这会创建一个名为 hello_project 的文件夹,里面包含了项目的基本结构。接下来我们进入这个项目文件夹:
cd hello_project
此时我们可以查看一下项目结构:
hello_project/
├── manage.py
└── hello_project/
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
这些文件的具体含义我们已经在前面介绍过了。下面我们开始创建 App。
第二步:创建 App
Django 鼓励将功能模块化,所以我们需要创建一个 App 来编写我们的“Hello World”页面。
在命令行中执行以下命令来创建一个名为 hello_app 的 App:
python manage.py startapp hello_app
这时你会发现项目目录中多了一个 hello_app 文件夹,里面的结构包括:
hello_app/
├── migrations/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py
我们需要把这个 App 注册到项目中才能使用它。打开 hello_project/settings.py 文件,在 INSTALLED_APPS 列表中添加 'hello_app':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hello_app', # 添加这一行
]
保存文件,这就完成了 App 的注册。
第三步:编写视图函数
接下来我们要创建一个视图函数,它负责处理网页请求并返回内容。打开 hello_app/views.py 文件,修改代码如下:
from django.http import HttpResponse
def hello_view(request):
return HttpResponse("你好,世界!")
这里的 hello_view 是一个视图函数,它接收一个请求对象 request,然后返回一个包含文本“你好,世界!”的 HTTP 响应。
第四步:配置路由
下一步我们需要告诉 Django 当用户访问某个 URL 时,应该调用哪个视图。为此,我们要配置路由规则。
首先,在 hello_app 目录下创建一个新文件 urls.py,并添加以下内容:
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello_view),
]
这段代码的意思是:当用户访问 /hello/ 路径时,调用 hello_app.views.hello_view 函数处理请求。
接下来我们需要把这个 App 的路由添加到项目的总路由中。打开 hello_project/urls.py 文件,修改如下:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('hello_app.urls')),
]
我们使用 include() 把 hello_app.urls 中的路由包含进来。这意味着根路径 '' 对应的请求都会被转发给 hello_app 处理。
第五步:启动开发服务器并访问页面
现在我们已经完成了所有代码的编写,可以启动 Django 自带的开发服务器来看看效果了。
在命令行中执行:
python manage.py runserver
你会看到如下输出:
Performing system checks...
System check identified no issues (0 silenced).
October 05, 2023 - 15:50:53
Django version 4.2.6, using settings 'hello_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
这表明服务器已经启动,正在监听本地 8000 端口。
打开浏览器,访问:
http://127.0.0.1:8000/hello/
你将会看到页面上显示:
你好,世界!
恭喜!你已经成功用 Django 创建了你的第一个网页!
项目完成情况总结
到目前为止,我们完成了以下工作:
- 使用
startproject创建了一个新的 Django 项目 - 使用
startapp创建了一个 App - 在
views.py中编写了一个视图函数来返回页面内容 - 在
urls.py中配置了路由,使 URL 和视图函数关联起来 - 启动服务器并在浏览器中访问页面
这个项目虽小,但它展示了 Django 开发的基本流程。接下来你可以尝试拓展这个项目,例如在页面中添加 HTML 模板、链接更多页面等。
继续加油!你已经迈出了成为 Django 开发者的第一步!
常见问题解答
在初次学习 Django 的过程中,你可能会遇到一些常见问题。下面是几个最容易出现的问题及其解决方法,帮助你避免卡壳,顺利前进。
1. 为什么运行 runserver 时提示端口被占用?
问题表现:
当你执行 python manage.py runserver 时,可能会收到错误信息,例如:
Error: That port is already in use.
原因:
这是因为本地的 8000 端口已经被其他程序占用了。Django 默认使用 8000 端口作为开发服务器的监听端口。
解决方法:
你可以指定一个不同的端口号来运行服务器。例如:
python manage.py runserver 8080
然后在浏览器中访问:
http://127.0.0.1:8080/hello/
这样就可以绕开被占用的端口。
另外,如果你想查看哪些进程正在使用特定端口,可以在命令行中输入:
lsof -i :8000 # macOS/Linux
netstat -ano | findstr :8000 # Windows
找到 PID(进程编号),然后通过任务管理器结束相关进程。
2. 导入模块时报错:No module named ‘xxx’
问题表现:
当你运行程序或访问网页时,出现如下错误:
ModuleNotFoundError: No module named 'hello_app'
或者类似的提示说找不到某个模块。
原因:
这通常是由于当前 Python 解释器没有正确识别你的项目结构导致的。有时候是因为你没有激活虚拟环境,或者是项目结构不规范。
解决方法:
确认当前目录是否正确:
确保你在项目根目录下运行命令。例如,在hello_project目录下执行:python manage.py runserver检查是否激活了虚拟环境:
如果你使用了虚拟环境(如venv),请确保你已经激活它:source venv/bin/activate # macOS/Linux venv\Scripts\activate # Windows确保 App 正确注册:
检查 `settings

评论 0