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

变量命名困难户
2025-12-14 02:45
阅读 1618

作者注:作为一位维护过多个开源项目的后端工程师,我深知初学者面对新框架时的迷茫。多年前我第一次接触Web开发时,也是从零开始摸索。今天写这篇教程,就是希望用最清晰、最实战的方式,带你迈出Python Web开发的第一步。无论你是否学过Java或其他语言,只要愿意动手,就能成功!

一、Django是什么?为什么选择它?

Django 是一个用 Python 编写的高级Web框架,它的目标是让开发者能快速构建安全、可维护的网站,而无需重复造轮子。

  • 它内置了用户认证、数据库管理、后台管理等常用功能
  • 遵循“约定优于配置”原则,减少决策负担
  • 社区活跃,文档完善,适合初学者和企业级项目

📌 技术分享小贴士:很多初学者会问:“我之前学过Java,还能学Django吗?”
当然可以!虽然Java常用于Spring Boot等后端框架,但Django的MVC(在Django中叫MTV)思想与之相通。你会更容易理解“路由-逻辑-模板”的分离模式。工具只是手段,核心是编程思维。


二、环境准备:5分钟搭建开发环境

1. 安装Python(推荐3.8+)

Django基于Python,所以第一步是确保你有Python环境。

  • Windows用户:前往 python.org 下载安装,并勾选 “Add to PATH”
  • macOS用户:建议使用 brew install python3
  • Linux用户:通常已预装,可用 python3 --version 检查

✅ 验证安装:

python --version
# 或
python3 --version

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

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

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

# 激活虚拟环境
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate

激活后,命令行前缀会出现 (myenv),表示你已进入该环境。

3. 安装Django

pip install django

💡 实战经验:我当初学的时候直接全局安装Django,结果后来多个项目依赖冲突,重装系统才解决……别学我!永远用虚拟环境!

验证安装成功:

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

三、核心概念:Django的三大支柱

Django采用 MTV 模式(Model-Template-View),对应传统MVC:

Django术语 作用 类比理解
Model 数据结构(如用户、文章) 相当于数据库的“表格定义”
Template 页面HTML(前端展示) 就是你看到的网页样子
View 处理请求并返回响应 “中间人”,接收请求,查数据,返回页面

🧠 举个生活例子:
你想点外卖(发起请求)→ 系统(View)查菜单(Model)→ 把菜单图片(Template)发给你看。


四、实战项目:创建一个“欢迎页”网站

现在,我们一步步创建你的第一个Django网站!

步骤1:创建项目

django-admin startproject mysite
cd mysite

这会生成如下结构:

mysite/
├── manage.py          # 命令行工具(启动、迁移等)
└── mysite/            # 项目配置目录
    ├── __init__.py
    ├── settings.py    # 全局配置(数据库、时区等)
    ├── urls.py        # 主路由文件
    └── wsgi.py

步骤2:启动开发服务器

python manage.py runserver

打开浏览器,访问 http://127.0.0.1:8000,你会看到经典的 “The install worked successfully!” 页面!

⚠️ 注意:如果提示端口被占用,可换端口:

python manage.py runserver 8080

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

Django项目由多个“应用”组成(如用户系统、博客、商城)。我们创建一个叫 hello 的应用:

python manage.py startapp hello

项目结构变为:

mysite/
├── hello/             # 新增的应用
│   ├── views.py       # 核心!写业务逻辑的地方
│   ├── models.py      # 定义数据模型
│   └── ...
└── mysite/

步骤4:编写视图(View)

编辑 hello/views.py

from django.http import HttpResponse

def welcome(request):
    return HttpResponse("<h1>你好,世界!欢迎来到我的第一个Django网站!</h1>")

步骤5:配置URL路由

Django不会自动暴露视图,你需要告诉它“哪个URL对应哪个函数”。

  1. hello/ 目录下新建 urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.welcome, name='welcome'),
]
  1. 修改主路由 mysite/urls.py,包含 hello 的路由:
from django.contrib import admin
from django.urls import path, include  # 引入 include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('hello.urls')),   # 添加这一行
]

步骤6:注册应用(重要!)

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

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

步骤7:刷新页面!

回到浏览器刷新 http://127.0.0.1:8000,你应该看到:

你好,世界!欢迎来到我的第一个Django网站!

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


五、新手常见问题解答(FAQ)

Q1:为什么页面显示“Page not found (404)”?

  • 检查 urls.py 是否正确配置
  • 确认应用已添加到 settings.pyINSTALLED_APPS
  • 确保视图函数返回的是 HttpResponse 对象

Q2:修改代码后页面没变化?

Django开发服务器会自动重载,但有时需要手动重启。按 Ctrl+C 停止服务,再运行 python manage.py runserver

Q3:能用Java开发Django吗?

不能。Django是 纯Python框架。但如果你有Java背景,理解Web开发概念(如HTTP、REST、MVC)会更快。工具不同,思想相通。

Q4:Django和Flask有什么区别?

框架 特点 适合场景
Django “全功能”,开箱即用 快速开发完整网站(如博客、电商)
Flask “微框架”,灵活轻量 小型API、学习原理、高度定制

💡 建议:零基础首选Django,它帮你做了很多正确的事。


六、下一步学习建议

你已经迈出了关键一步!接下来可以:

  1. 学习模板系统:把HTML写进 .html 文件,用 render() 渲染
  2. 连接数据库:Django默认用SQLite,试试创建一个“留言板”
  3. 使用Admin后台:Django自带强大后台,只需几行代码就能管理数据
  4. 部署上线:用免费平台(如PythonAnywhere、Vercel)让你的网站被全世界访问

🔧 避坑指南

  • 不要一开始就追求“完美架构”
  • 先跑通,再优化
  • 遇到报错,仔细读错误信息(90%的问题答案就在里面!)

结语

通过这篇教程,你不仅搭建了第一个Python网站,更重要的是理解了Web开发的基本流程:请求 → 处理 → 响应。Django的强大之处在于,它把这些复杂过程封装得极其简单。

我当初学的时候,也是从一行 HttpResponse 开始的。今天你能做到,明天就能做出更酷的东西!

技术分享的价值,在于让更多人少走弯路。如果你觉得这篇教程有帮助,不妨动手实践,并分享给其他初学者。编程之路,我们一起前行!

行动号召:现在就打开终端,输入 django-admin startproject —— 你的Web开发之旅,正式启航!

评论 0

最热最新
暂无评论
变量命名困难户Lv.1
0
影响力
0
文章
0
粉丝