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

算法边缘人
2025-12-18 01:57
阅读 2561

作者:一位开源项目维护者 & 后端讲师
写在前面:我当初学Web开发时,被各种框架、术语和配置绕得晕头转向。今天写这篇教程,就是希望你能用最短的时间、最少的弯路,亲手跑起第一个Python网站。


为什么选择 Django?它和 Java 有什么关系?

Django 是一个用 Python 编写的开源 Web 框架,它的口号是 “The web framework for perfectionists with deadlines”(为有截止日期的完美主义者打造的 Web 框架)。简单说,它能让你用 Python 快速构建功能完整的网站,而不用从零开始造轮子。

你可能会问:“我听说 Java 也能做网站,为什么要用 Python + Django?”

这是个好问题!Java 确实广泛用于企业级产品开发(比如银行系统、大型电商后台),但它通常需要更复杂的配置和更多的样板代码。而 Django 的优势在于“开箱即用”:用户认证、管理后台、数据库 ORM、URL 路由等核心功能都已内置。对于初学者或快速验证产品想法的创业者来说,Django 能让你在几小时内就做出一个可运行的原型——这对早期产品迭代至关重要。

✅ 小结:如果你的目标是快速做出一个可用的产品原型,或者想用最简单的方式理解 Web 开发的核心逻辑,Django 是比 Java 更友好的起点。


第一步:环境准备(5 分钟搞定)

我们假设你已经安装了 Python(建议 3.8+)。如果没有,请先去 python.org 下载安装。

1. 创建虚拟环境(强烈推荐!)

虚拟环境能隔离不同项目的依赖,避免“这个项目要 Django 3,那个项目要 Django 4”的冲突。

# 创建名为 mysite 的虚拟环境
python -m venv mysite

# 激活虚拟环境(Windows)
mysite\Scripts\activate

# 激活虚拟环境(macOS / Linux)
source mysite/bin/activate

激活后,命令行前会显示 (mysite),说明你已进入该环境。

2. 安装 Django

pip install django

验证是否安装成功:

django-admin --version
# 输出类似:4.2.7

💡 避坑指南:不要用 sudo pip 或直接在系统 Python 中安装!这会导致权限混乱和依赖冲突。


第二步:理解 Django 的核心概念(用大白话解释)

在动手前,先搞懂三个关键角色:

组件 作用 类比
Model(模型) 定义数据结构(如用户、文章) 数据库的“蓝图”
View(视图) 处理请求并返回响应(如显示首页) 网站的“逻辑处理器”
Template(模板) HTML 页面(如网页布局) 网站的“皮肤”

这三者合起来就是 MVT 模式(Django 版的 MVC)。你不需要死记硬背,跟着下面的例子自然就懂了。


第三步:实战!创建你的第一个网站

我们将做一个极简的“欢迎页”,展示“Hello, Django!”。

步骤 1:创建项目

django-admin startproject mysite .

注意末尾的 .,它表示把项目文件创建在当前目录(而不是新建一个子文件夹)。

此时目录结构如下:

mysite/
├── manage.py
└── mysite/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
  • manage.py:Django 的命令行工具(你会经常用它)
  • settings.py:项目配置文件(数据库、时区等)
  • urls.py:网站的“总路由表”

步骤 2:启动开发服务器

python manage.py runserver

看到 Starting development server at http://127.0.0.1:8000/ 就成功了!打开浏览器访问这个地址,你会看到 Django 的火箭发射成功页面 🚀。

⚠️ 常见问题:如果提示端口被占用,可以换端口:

python manage.py runserver 8080

步骤 3:创建一个应用(App)

Django 项目由多个“应用”组成(比如用户系统、博客、商城)。现在我们创建一个叫 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! 欢迎来到你的第一个Python网站!")

这段代码的意思是:当有人访问某个 URL 时,调用 welcome 函数,返回一段文字。

步骤 5:配置 URL 路由

Django 默认不会自动暴露视图,你需要手动绑定 URL。

  1. 先在 home 应用内创建 urls.py 文件:
# home/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.welcome, name='welcome'),
]
  1. 再在项目主路由 mysite/urls.py 中包含这个应用的路由:
# mysite/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('home.urls')),  # 新增这一行
]

步骤 6:注册应用

Django 需要知道你创建了新应用。打开 mysite/settings.py,找到 INSTALLED_APPS,添加 'home'

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    # ... 其他默认项
    'home',  # ← 添加这一行
]

步骤 7:刷新浏览器!

回到 http://127.0.0.1:8000/,现在你应该看到:

Hello, Django! 欢迎来到你的第一个Python网站!

恭喜!你已经完成了第一个 Django 网站。


第四步:进阶一点 —— 使用模板(Template)

纯文本太单调了,我们来加点 HTML。

1. 创建模板目录

home 目录下新建 templates/home/ 文件夹:

home/
└── templates/
    └── home/
        └── welcome.html

✅ Django 默认会在每个应用的 templates/ 下找模板文件。

2. 编写 HTML 模板

home/templates/home/welcome.html

<!DOCTYPE html>
<html>
<head>
    <title>我的第一个Django网站</title>
</head>
<body>
    <h1>Hello, Django!</h1>
    <p>这是一个用 <strong>Python</strong> 和 Django 构建的简单产品原型。</p>
    <p>对比 Java 的繁琐配置,是不是感觉轻松多了? 😊</p>
</body>
</html>

3. 修改视图以使用模板

更新 home/views.py

from django.shortcuts import render

def welcome(request):
    return render(request, 'home/welcome.html')

render 是 Django 提供的快捷函数,自动加载模板并返回 HTTP 响应。

4. 刷新页面!

现在你的网站有了真正的 HTML 结构。未来你可以在这里加入 CSS、JavaScript,甚至连接数据库。


常见问题解答(FAQ)

Q1:为什么我改了代码,网页没变化?

A:Django 开发服务器默认会自动重载代码,但有时会失效。尝试:

  • 关闭服务器(Ctrl+C)
  • 重新运行 python manage.py runserver

Q2:出现 “ModuleNotFoundError: No module named 'home'”

A:检查 mysite/settings.py 中是否已将 'home' 加入 INSTALLED_APPS

Q3:能否用 Django 替代 Java 做企业级产品?

A:可以,但要看场景。Django 适合快速开发、中小规模产品(如 SaaS 工具、内容平台)。超大规模、高并发场景(如支付系统)可能仍需 Java + Spring。不过很多知名产品(如 Instagram、Pinterest)就是用 Django 构建的。

Q4:下一步该学什么?

A:建议按此顺序深入:

  1. 学习 Model:创建数据库表(如用户、文章)
  2. 使用 Django Admin:自动生成后台管理系统
  3. 学习 表单处理:让用户提交数据
  4. 部署到云服务器(如 Vercel、Railway 或阿里云)

学习建议与避坑指南

  • 不要死磕理论:Django 的文档非常友好(docs.djangoproject.com),边做边查效率最高。
  • 善用 manage.py:它是你的瑞士军刀。常用命令:
    python manage.py createsuperuser  # 创建管理员账号
    python manage.py makemigrations  # 生成数据库变更
    python manage.py migrate         # 应用数据库变更
    
  • 不要过早优化:新手常纠结“要不要用 REST API”“要不要分微服务”。先做出能跑的产品,再考虑架构。
  • 和 Java 对比着学:如果你有 Java 背景,可以思考:“在 Spring Boot 中这个功能怎么实现?” 这能加深理解。

结语

今天,你用不到 50 行代码,就搭建了一个真正的 Web 应用。这背后是 Django 对 Python 生态的极致封装,也是它能成为快速产品开发利器的原因。

记住:所有复杂的系统,都始于一个 Hello World。你现在迈出的第一步,可能就是未来某个改变世界的产品的起点。

下一步行动建议:尝试在 welcome.html 中加入一个“当前时间”显示(提示:用 {{ now }} 并在视图中传入 {'now': datetime.now()})。动手,才是最好的学习。

祝你编码愉快!

评论 0

最热最新
暂无评论
算法边缘人Lv.1
0
影响力
0
文章
0
粉丝