Django入门教程:搭建你的第一个Python网站
大家好,我是一名开源项目维护者,也长期参与技术社区的教学工作。过去几年里,我帮助过上百位零基础的同学入门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”组成。比如一个电商网站可能有 users、products、orders 等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,让开发者能快速构建生产级产品。
学习建议:下一步该学什么?
你已经迈出了第一步!接下来,我建议按这个路径深入:
- 学Django Admin:自动生成后台管理系统,5分钟搞定数据增删改查。
- 学Models:定义数据库表,用
python manage.py makemigrations和migrate同步数据库。 - 学Templates:用
{% for %}、{{ variable }}渲染动态页面。 - 学Forms:处理用户输入,验证数据。
- 部署上线:用免费平台(如Render、Vercel + Django)让你的网站被全世界访问。
🔗 优质资源推荐:
- 官方文档(中文):https://docs.djangoproject.com/zh-hans/
- 实战教程:《Django for Beginners》(免费在线版)
- 视频课程:B站搜索“Django 零基础”
最后的话:关于求职与成长
很多同学问:“学Django对求职有帮助吗?”
我的答案是:关键不在技术本身,而在于你能否用它做出产品。
- 如果你能用Django做出一个完整的Todo应用(带用户登录、数据存储、响应式页面),并部署上线,这比只会背八股文强十倍。
- Python生态广泛,除了Web,还能做爬虫、自动化、数据分析。掌握Django,等于打开了全栈开发的大门。
- 相比Java岗位的激烈竞争,Python岗位(尤其结合AI、数据分析方向)正在快速增长。
我当初就是靠一个Django做的课程管理系统,拿到了第一份实习offer。动手做,永远比空想有用。
现在,关掉这篇文章,打开你的终端,输入 django-admin startproject —— 你的开发者之旅,就从这一行命令开始。

评论 0