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

码农观察室
2025-12-15 04:48
阅读 202

大家好,我是一名开源项目维护者,也长期参与技术社区的教学工作。过去几年里,我帮助过上百位零基础的同学入门Web开发。今天我想写这篇《Django入门教程》,是因为我发现很多初学者在面对“如何用Python做网站”这个问题时,常常被各种框架、术语吓退。其实,用Django搭建一个网站,比你想象中简单得多

我当初学的时候,也是从一行pip install django开始的。那时我还在纠结:为什么不用Java?Django真的适合做产品吗?学完能求职吗?这些问题,我会在本文一一解答。


为什么选择Django?和Java Web框架对比一下

在开始动手前,先搞清楚:Django是什么?它和其他技术(比如Java)有什么区别?

维度 Django (Python) Java Web (如Spring Boot)
学习曲线 平缓,语法简洁 较陡,需理解面向对象、依赖注入等概念
开发速度 极快,内置Admin、ORM、模板系统 配置较多,但更灵活
适合场景 快速原型、中小型产品、初创公司 大型企业级系统、高并发后台
求职方向 Python后端、全栈、数据分析岗 Java后端、金融/电商系统开发
资源丰富度 中文文档完善,社区活跃 生态庞大,但学习资料偏理论

💡 关键结论:如果你是零基础,想快速做出一个可运行的产品(比如个人博客、任务管理工具),Django是极佳选择。它让你专注业务逻辑,而不是配置细节。


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

1. 安装Python

确保你已安装 Python 3.7+。在终端输入:

python --version
# 或
python3 --version

如果没有,请去 python.org 下载安装。

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

虚拟环境能隔离项目依赖,避免“在我电脑上能跑”的问题。

# 创建
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
# 输出类似:4.2.7

避坑指南:不要全局安装Django!一定要用虚拟环境,否则不同项目的Django版本冲突会让你崩溃。


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

Django遵循 MTV 模式(Model-Template-View),你可以把它理解为:

  • Model(模型):数据库的“蓝图”。比如“用户”有用户名、邮箱。
  • Template(模板):网页的“样子”。就是HTML文件,但可以嵌入动态数据。
  • View(视图):连接模型和模板的“中间人”。它决定:当用户访问某个网址时,显示什么内容。

🌰 举个例子:
用户访问 /about → View 被触发 → View 从 Model 获取数据(比如公司信息)→ 把数据塞进 Template → 返回完整网页。


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

我们将做一个极简的“欢迎页面”。

1. 创建项目

django-admin startproject mysite
cd mysite

这会生成一个名为 mysite 的文件夹,里面是Django项目的骨架。

2. 启动开发服务器

python manage.py runserver

打开浏览器,访问 http://127.0.0.1:8000,你会看到经典的火箭图标页面 —— 恭喜!你的网站已经跑起来了!

3. 创建一个App(Django的功能模块)

Django项目由多个“App”组成。比如一个电商网站可能有 usersproductsorders 等App。

python manage.py startapp home

4. 注册App

编辑 mysite/settings.py,在 INSTALLED_APPS 列表中加入 'home'

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

5. 编写View(视图)

编辑 home/views.py

from django.http import HttpResponse

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

6. 配置URL路由

Django通过URL把请求分发给对应的View。

  • 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

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

7. 重新启动服务器

python manage.py runserver

刷新浏览器,现在首页显示的是你写的欢迎语!

恭喜!你已经完成了第一个Django网站。虽然简单,但它包含了完整的请求-响应流程。


常见问题解答(新手必看)

Q1:为什么我的修改没生效?

  • 原因:Django开发服务器不会自动重载某些文件(比如 settings.py)。
  • 解决:重启 runserver 命令。

Q2:ModuleNotFoundError: No module named 'xxx'

  • 原因:虚拟环境未激活,或包未安装。
  • 解决:确认 (venv) 前缀存在,再运行 pip install django

Q3:中文乱码怎么办?

  • settings.py 中设置:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

Q4:Django能做产品吗?会不会太“玩具”?

  • 完全能! Instagram、Pinterest、Mozilla 都用Django。它内置的安全机制(防CSRF、XSS)、Admin后台、ORM,让开发者能快速构建生产级产品

学习建议:下一步该学什么?

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

  1. 学Django Admin:自动生成后台管理系统,5分钟搞定数据增删改查。
  2. 学Models:定义数据库表,用 python manage.py makemigrationsmigrate 同步数据库。
  3. 学Templates:用 {% for %}{{ variable }} 渲染动态页面。
  4. 学Forms:处理用户输入,验证数据。
  5. 部署上线:用免费平台(如Render、Vercel + Django)让你的网站被全世界访问。

🔗 优质资源推荐


最后的话:关于求职与成长

很多同学问:“学Django对求职有帮助吗?”

我的答案是:关键不在技术本身,而在于你能否用它做出产品。

  • 如果你能用Django做出一个完整的Todo应用(带用户登录、数据存储、响应式页面),并部署上线,这比只会背八股文强十倍。
  • Python生态广泛,除了Web,还能做爬虫、自动化、数据分析。掌握Django,等于打开了全栈开发的大门
  • 相比Java岗位的激烈竞争,Python岗位(尤其结合AI、数据分析方向)正在快速增长。

我当初就是靠一个Django做的课程管理系统,拿到了第一份实习offer。动手做,永远比空想有用。


现在,关掉这篇文章,打开你的终端,输入 django-admin startproject —— 你的开发者之旅,就从这一行命令开始。

评论 0

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