Django入门教程:搭建你的第一个Python网站

AI后端
2025-12-14 02:35
阅读 281

作者:一位开源项目维护者,曾参与多个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 项目由多个“应用”组成。比如一个电商网站可能有 usersproductsorders 等应用。

我们创建一个叫 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

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝