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

高级曹秀英探索者
2025-12-17 02:47
阅读 1665

作者:一位维护过多个开源项目的后端工程师。我写这篇教程,是因为当年自己从零开始学Django时踩过太多坑——文档太抽象、概念太密集、环境配置一团乱。今天,我想用最直白的方式,带你轻松迈出Web开发的第一步。


为什么选择 Django?

在你开始之前,先搞清楚:Django 是什么?

简单说,Django 是一个用 Python 编写的全功能 Web 框架。它能帮你快速搭建网站后台(也就是“服务器端”),处理用户请求、连接数据库、返回网页内容等。它的口号是:“Don’t repeat yourself”(别重复造轮子)——很多常见功能,比如用户登录、管理后台、URL路由,它都帮你做好了。

你可能会问:

“现在不是很多人用 Java 做后端吗?为什么要学 Python 和 Django?”

这是个好问题!确实,Java 在企业级开发中非常流行(比如 Spring Boot 框架),但它学习曲线陡峭、代码量大、配置复杂。而 Django 的优势在于:

  • 上手快:几行代码就能跑起一个网站
  • 内置功能多:自带管理后台、用户系统、ORM(对象关系映射)
  • 适合快速原型开发:创业项目、个人博客、内部工具首选
  • 社区活跃:遇到问题,网上有海量解决方案

至于 爬虫(网络数据抓取工具),虽然 Django 本身不是用来写爬虫的,但你完全可以用它展示爬虫抓到的数据!比如你用 requests + BeautifulSoup 抓取天气信息,再用 Django 做个网页展示出来——这就是一个完整的 Web 应用。


第一步:环境准备(手把手教你装)

💡 我当初学的时候,光是装环境就折腾了一整天。别怕,跟着我一步步来。

1. 安装 Python(必须 ≥ 3.8)

打开终端(Mac/Linux)或命令提示符(Windows),输入:

python --version

如果显示 Python 3.x,说明已安装。如果没有,请去 python.org 下载最新版,并务必勾选 “Add to PATH”(Windows 用户特别注意!)。

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

虚拟环境能隔离项目依赖,避免不同项目之间的包冲突。

# 创建虚拟环境(名字叫 mysite-env)
python -m venv mysite-env

# 激活虚拟环境
# Windows:
mysite-env\Scripts\activate
# Mac/Linux:
source mysite-env/bin/activate

激活后,命令行前面会出现 (mysite-env),表示你现在在这个独立环境中。

3. 安装 Django

在激活的虚拟环境中执行:

pip install django

验证是否安装成功:

django-admin --version
# 应该输出类似 5.0.6 的版本号

✅ 到此,你的开发环境就准备好了!


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

Django 遵循 MTV 模式(Model-Template-View),你可以把它类比成做菜:

角色 对应 Django 组件 作用
菜谱 Model(模型) 定义数据结构(比如“文章”有标题、内容、发布时间)
厨师 View(视图) 处理逻辑(比如“当用户访问首页,去数据库找最新文章”)
盘子 Template(模板) 网页的 HTML 外观(怎么把数据显示在页面上)

另外几个关键概念:

  • Project(项目):整个网站的容器,包含多个 App。
  • App(应用):功能模块,比如“博客”、“用户系统”、“商品管理”。一个项目可以有多个 App。
  • URL 路由:告诉 Django “当用户访问 /about 时,该调用哪个 View”。

🌟 小贴士:不要一上来就想做大项目!先做一个“显示一句话”的网站,跑通流程最重要。


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

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

步骤 1:创建项目

在终端执行:

django-admin startproject mysite

这会生成一个叫 mysite 的文件夹,结构如下:

mysite/
    manage.py          # 项目管理脚本(启动、数据库操作等)
    mysite/
        __init__.py
        settings.py    # 全局配置(数据库、时区、安装的App等)
        urls.py        # 项目级 URL 路由
        asgi.py / wsgi.py  # 部署用,初学可忽略

步骤 2:启动开发服务器

进入项目目录并启动:

cd mysite
python manage.py runserver

看到类似输出:

Starting development server at http://127.0.0.1:8000/

打开浏览器,访问 http://127.0.0.1:8000/ —— 看到火箭图标了吗?恭喜!你的 Django 站点跑起来了!

步骤 3:创建一个 App

项目不能直接写业务逻辑,需要创建 App:

python manage.py startapp hello

现在目录多了 hello/ 文件夹,里面就有我们要写的代码。

步骤 4:注册 App

打开 mysite/settings.py,找到 INSTALLED_APPS,添加 'hello'

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

步骤 5:编写 View(视图)

编辑 hello/views.py

from django.http import HttpResponse

def welcome(request):
    return HttpResponse("Hello, Django! 这是我的第一个网站!")

这个函数的意思是:当有请求进来,就返回一段文本。

步骤 6:配置 URL 路由

先在 App 内创建路由文件:在 hello/ 目录下新建 urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.welcome, name='welcome'),
]

再把 App 的路由挂到项目主路由:修改 mysite/urls.py

from django.contrib import admin
from django.urls import path, include  # ← 导入 include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('hello.urls')),  # ← 包含 hello 的路由
]

步骤 7:刷新浏览器!

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

Hello, Django! 这是我的第一个网站!

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


进阶:让网站更“像样”一点(加 HTML 模板)

纯文本太无聊了,我们来加个简单的 HTML 页面。

1. 创建模板目录

hello/ 下创建文件夹:

hello/
    templates/
        hello/
            index.html

💡 为什么是 templates/hello/?这是 Django 的约定:App 名作为子目录,避免多个 App 模板名冲突。

2. 编写 HTML 模板

hello/templates/hello/index.html 内容:

<!DOCTYPE html>
<html>
<head>
    <title>我的第一个 Django 网站</title>
</head>
<body>
    <h1>欢迎来到 Django 世界!</h1>
    <p>这里可以展示从爬虫抓来的数据,比如:</p>
    <ul>
        <li>今日热搜:{{ hot_topic }}</li>
        <li>天气:{{ weather }}</li>
    </ul>
</body>
</html>

注意 {{ hot_topic }}{{ weather }} —— 这是 Django 模板语言,用来动态插入数据。

3. 修改 View,传递数据

更新 hello/views.py

from django.shortcuts import render

def welcome(request):
    context = {
        'hot_topic': 'Django 入门教程',
        'weather': '晴,25°C'
    }
    return render(request, 'hello/index.html', context)

render 函数会自动去找 templates/ 下的模板,并把 context 字典里的数据传进去。

4. 刷新页面!

现在你会看到一个有标题、有列表的网页了!虽然数据是写死的,但结构已经具备了——下一步你就可以接入真实数据,比如数据库或爬虫结果。


常见问题解答(新手避坑指南)

❓ 问题1:为什么运行 runserver 报错 “command not found”?

  • 原因:没激活虚拟环境,或者 Django 没装成功。
  • 解决:确认 (mysite-env) 是否出现在命令行前缀;重新执行 pip install django

❓ 问题2:修改了代码,网页没变化?

  • 原因:Django 开发服务器会自动重载,但有时缓存会干扰。
  • 解决:手动停止服务器(Ctrl+C),再重新运行 python manage.py runserver

❓ 问题3:模板找不到(TemplateDoesNotExist)?

  • 检查点
    1. 模板是否放在 templates/your_app_name/ 下?
    2. settings.pyTEMPLATES 配置是否包含 'APP_DIRS': True?(默认是开启的,不用改)

❓ 问题4:和 Java 比,Django 性能会不会很差?

  • 回答:对于中小型网站,Django 性能完全够用。性能瓶颈通常在数据库或架构设计,而不是语言本身。Instagram、Pinterest 都用 Django 支撑亿级用户。

❓ 问题5:我能用 Django 写爬虫吗?

  • 回答:不推荐。Django 是 Web 框架,不是爬虫框架。你应该用 Scrapyrequests + BeautifulSoup 写爬虫,然后把数据存入数据库,再用 Django 展示。两者分工明确!

下一步学习建议

你已经迈出了关键一步!接下来,我建议你按这个路径深入:

  1. 学数据库操作:用 Django ORM 创建模型,存储“文章”、“用户”等数据。
  2. 做管理后台:Django 自带 admin,只需几行配置就能管理数据。
  3. 集成真实爬虫:比如每天抓取某网站新闻,存入数据库,用 Django 展示。
  4. 学前端基础:HTML/CSS/JavaScript,让你的页面不再“裸奔”。
  5. 部署上线:用 Vercel、Render 或阿里云,让全世界都能访问你的网站。

📌 最后送你一句我常说的话:“先跑起来,再优化。” 不要追求完美代码,先做出能运行的东西,成就感会推着你继续前进。


结语

从零到上线一个网站,其实并没有想象中那么难。Django 的设计哲学就是“让开发者专注业务,而非底层细节”。你不需要懂 HTTP 协议、WSGI、线程池这些底层知识,也能做出可用的产品。

而当你未来面对 Java 项目或高并发系统时,这段 Django 的经验会让你更理解 Web 开发的本质——接收请求、处理逻辑、返回响应。万变不离其宗。

现在,关掉这篇文章,打开你的终端,敲下 django-admin startproject 吧。你的第一个网站,正在等待诞生。

作者注:本文所有代码均经过 Python 3.10 + Django 5.0.6 测试。如遇版本差异,请优先查阅 Django 官方文档

评论 0

最热最新
暂无评论
高级曹秀英探索者Lv.1
0
影响力
0
文章
0
粉丝