Django入门教程:搭建你的第一个Python网站
作者:一位开源项目维护者,曾参与多个Python Web框架的文档编写
写作初衷:我当初学Web开发时,面对Django、Flask、Springboot等一堆名词完全懵圈。今天,我想用最直白的方式,带零基础的朋友迈出第一步。
为什么选择 Django?它和 Springboot 有什么关系?
很多初学者一听到“后端开发”,立刻会想到 Java 的 Springboot。没错,Springboot 是企业级应用的常青树,但它对新手不太友好——配置复杂、概念繁多、学习曲线陡峭。
而 Django 是 Python 社区中最流行的 Web 框架之一。它的核心哲学是:“不要重复造轮子”(Don’t Repeat Yourself)。Django 内置了用户认证、数据库管理、后台管理界面等功能,让你用最少的代码快速构建一个完整的 Web 产品。
简单对比:
| 特性 | Django (Python) | Springboot (Java) |
|---|---|---|
| 语言 | Python(语法简洁) | Java(类型严格) |
| 上手难度 | 低,适合新手 | 高,需掌握Maven、注解、依赖注入等 |
| 开发速度 | 快,内置功能多 | 较慢,需手动集成组件 |
| 典型用途 | 快速原型、中小型产品、内容型网站 | 大型企业系统、高并发服务 |
💡 我当初学的时候,用 Django 一天就做出了一个能注册登录的博客;而用 Springboot,光配环境就花了三天。所以,如果你是零基础,想快速做出一个可运行的产品,Django 是绝佳起点。
第一步:环境准备(手把手教你装好)
1. 安装 Python
Django 是基于 Python 的,所以首先要安装 Python(建议 3.8+)。
- Windows:去 python.org 下载安装包,记得勾选 “Add to PATH”。
- macOS:推荐用 Homebrew:
brew install python3 - Linux:大多数发行版已预装,用
python3 --version检查版本。
验证安装:
python3 --version
# 应输出类似:Python 3.10.12
⚠️ 常见坑:不要用系统自带的
python命令(可能是 Python 2),始终用python3。
2. 创建虚拟环境(强烈推荐!)
虚拟环境能隔离项目依赖,避免“这个项目用 Django 4.0,那个项目用 3.2”的混乱。
# 创建虚拟环境(名字叫 mysite_env)
python3 -m venv mysite_env
# 激活虚拟环境
# Windows:
mysite_env\Scripts\activate
# macOS / Linux:
source mysite_env/bin/activate
激活后,命令行前会显示 (mysite_env),说明你已进入隔离环境。
3. 安装 Django
在虚拟环境中执行:
pip install django
验证安装:
django-admin --version
# 输出如:4.2.7
✅ 小贴士:我维护的开源项目都强制要求使用虚拟环境,这是专业开发的第一步!
第二步:理解 Django 的核心概念(用大白话讲)
Django 遵循 MVT 模式(Model-View-Template),你可以把它想象成做一道菜:
- Model(模型) → 食材清单(数据结构)
- View(视图) → 烹饪步骤(处理逻辑)
- Template(模板) → 盛盘摆盘(网页样子)
🌰 举个例子:做一个“待办事项”网站
- Model:定义“任务”有标题、是否完成、创建时间
- View:当用户访问首页,从数据库取出所有任务
- Template:把任务列表用 HTML 展示出来
另外两个关键角色:
- URL 路由:像快递单号,告诉 Django 用户请求的是哪个页面(比如
/tasks/对应任务列表) - settings.py:整个项目的“配置中心”,数据库、时区、安全设置都在这里
第三步:实战!创建你的第一个 Django 网站
我们将做一个极简的“欢迎页”网站,只需 5 分钟。
步骤 1:创建项目
django-admin startproject mysite
cd mysite
这会生成如下结构:
mysite/
manage.py # 项目管理脚本
mysite/ # 项目配置目录
__init__.py
settings.py # 核心配置文件
urls.py # 主路由文件
asgi.py
wsgi.py
步骤 2:启动开发服务器
python manage.py runserver
看到 Starting development server at http://127.0.0.1:8000/ 就成功了!打开浏览器访问该地址,你会看到 Django 的火箭图标页面。
🔒 安全提示:
runserver只用于开发,绝不能用于生产环境!
步骤 3:创建一个“应用”(App)
Django 项目由多个“应用”组成。比如一个电商网站可能有 users、products、orders 等应用。
我们创建一个叫 home 的应用:
python manage.py startapp home
结构新增:
home/
migrations/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py # 我们要改这里!
步骤 4:写一个视图(View)
编辑 home/views.py:
from django.http import HttpResponse
def welcome(request):
return HttpResponse("Hello! 欢迎来到我的第一个 Django 网站!")
步骤 5:配置 URL 路由
先在 home 目录下新建 urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.welcome, name='welcome'),
]
然后修改项目主路由 mysite/urls.py:
from django.contrib import admin
from django.urls import path, include # 注意导入 include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('home.urls')), # 把 home 的路由包含进来
]
步骤 6:注册应用
Django 需要知道你创建了新应用。打开 mysite/settings.py,找到 INSTALLED_APPS,添加 'home':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... 其他默认项
'home', # ← 加在这里
]
步骤 7:重新运行服务器
python manage.py runserver
刷新浏览器,现在你应该看到自定义的欢迎语了!
✨ 恭喜!你已经完成了第一个 Django 产品原型。虽然简单,但包含了完整请求-响应流程。
第四步:常见问题与避坑指南
❓ 问题1:为什么浏览器打不开 127.0.0.1:8000?
- 检查是否在虚拟环境中运行了
runserver - 确保没有其他程序占用 8000 端口(可换端口:
python manage.py runserver 8080) - Windows 用户注意防火墙是否拦截
❓ 问题2:修改代码后页面没变化?
Django 开发服务器默认自动重载,但有时会失效。手动停止(Ctrl+C)再重启即可。
❓ 问题3:ImportError: No module named 'home'
- 检查
home是否在INSTALLED_APPS中 - 确保当前目录是项目根目录(含
manage.py)
❓ 问题4:中文显示乱码?
在 settings.py 中设置:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
💡 我当初学的时候,因为没设时区,数据库里的时间总是差8小时,调试到半夜……
第五步:下一步学习建议
你现在有了一个“能跑”的网站,但这只是开始。接下来可以:
1. 学习使用模板(Template)
把硬编码的 HTML 放到 .html 文件中,实现前后端分离:
# views.py
from django.shortcuts import render
def welcome(request):
return render(request, 'home/welcome.html')
2. 添加数据库模型(Model)
用 Django ORM 操作数据库,无需写 SQL:
# models.py
class Task(models.Model):
title = models.CharField(max_length=100)
done = models.BooleanField(default=False)
3. 使用 Django Admin 后台
Django 自带超强大的管理界面,注册模型后就能增删改查:
# admin.py
from django.contrib import admin
from .models import Task
admin.site.register(Task)
4. 对比学习:Django vs Springboot
当你熟悉 Django 后,可以尝试用 Springboot 实现同样功能。你会发现:
- Django 用 5 行代码做的事,Springboot 可能要 20 行
- 但 Springboot 在微服务、高并发场景更有优势
📌 重要建议:先精通一个框架,再横向对比。不要一开始就在 Django 和 Springboot 之间反复横跳,那样容易半途而废。
结语:你的产品之旅才刚刚开始
今天我们用不到 50 行代码,搭建了一个真正的 Web 产品。虽然它只有一个页面,但背后是完整的 HTTP 请求处理、路由分发、视图渲染流程。
记住:每一个复杂的系统,都是从 Hello World 开始的。
作为开源维护者,我见过太多人卡在环境配置、概念混淆上。希望这篇教程能帮你避开这些坑。如果你能成功运行欢迎页,说明你已经跨过了最难的第一道门槛。
下一步,试着给这个网站加一个“关于我们”页面,或者一个简单的表单。动手,永远是最好的学习方式。
最后送你一句话:产品不是写出来的,是迭代出来的。 你的第一个 Django 网站可能很简陋,但只要它能跑,你就已经是开发者了。
Happy coding! 🐍🚀

评论 0