零基础也能搭网站?用 Django 写你的第一个 Python 网站
大家好,我是掘金上常写教程的全栈工程师。最近有读者私信我:“学 Python 除了写爬虫还能干啥?” 其实,Python 不仅能抓数据,还能搭建完整的网站!今天这篇教程,就带完全没有后端经验的朋友,用 Django 框架从零开始做出一个可运行的网页。
我当初学的时候,也被“MVC”“路由”“模板”这些词吓到过。但其实,只要拆解清楚,Django 是对新手非常友好的 Web 框架。它内置了开发服务器、数据库管理、用户系统等工具,让你专注业务逻辑,而不是重复造轮子。
更重要的是:会写网站,你就打开了代码人生的另一扇门——不再是只处理数据的脚本,而是能被全世界访问的产品!
一、为什么选 Django?
Django 是一个用 Python 编写的“大而全”的 Web 框架。它的口号是:“Don’t repeat yourself”(别重复自己)。这意味着:
- 自带后台管理界面
- 自动处理数据库操作
- 内置用户认证系统
- 安全性高(防 CSRF、XSS 等)
对比其他框架(比如 Flask),Django 更适合快速构建完整网站,尤其适合初学者建立系统性认知。
📌 小知识:很多知名网站如 Instagram、知乎早期都用了 Django!
二、环境准备:5 分钟搭好开发地基
1. 安装 Python(3.7+)
确保你已安装 Python。在终端输入:
python --version
# 或
python3 --version
如果没有,请去 python.org 下载安装。
2. 创建虚拟环境(强烈推荐!)
虚拟环境能隔离项目依赖,避免“这个包在 A 项目行,B 项目崩”的问题。
# 创建虚拟环境(名字叫 mysite_env)
python -m venv mysite_env
# 激活虚拟环境
# Windows:
mysite_env\Scripts\activate
# macOS/Linux:
source mysite_env/bin/activate
激活后,命令行前缀会出现 (mysite_env),说明成功。
3. 安装 Django
pip install django
验证安装:
django-admin --version
# 输出类似 4.2.7,说明安装成功
✅ 工具清单总结:
工具 用途 Python 编程语言 pip 包管理器 venv 虚拟环境工具 Django Web 框架
三、核心概念:3 个关键词搞懂 Django
Django 遵循 MTV 模式(Model-Template-View),你可以理解为:
- Model(模型):和数据库打交道,定义数据结构(比如“文章”有标题、内容)
- Template(模板):HTML 页面,负责展示内容(前端部分)
- View(视图):连接 Model 和 Template,处理业务逻辑(比如“显示最新5篇文章”)
💡 类比:
Model = 厨房(准备食材)
View = 服务员(决定上什么菜)
Template = 餐盘(把菜漂亮地摆出来)
四、实战:创建你的第一个网站
我们来做一个极简的“欢迎页”,展示一句话。
步骤 1:创建项目
django-admin startproject mysite
cd mysite
这会生成一个 mysite 文件夹,里面包含配置文件、主应用等。
步骤 2:启动开发服务器
python manage.py runserver
看到 Starting development server at http://127.0.0.1:8000/ 就成功了!
打开浏览器,访问 http://127.0.0.1:8000,你会看到火箭图标页面 —— 恭喜!你的第一个 Django 网站跑起来了!
步骤 3:创建一个应用(App)
Django 项目由多个“应用”组成。比如博客、用户中心、商品系统各是一个 App。
python manage.py startapp home
现在目录结构大概是:
mysite/
├── manage.py
├── mysite/ # 项目配置
└── home/ # 我们刚创建的应用
├── views.py
├── models.py
└── ...
步骤 4:编写视图(View)
编辑 home/views.py:
from django.http import HttpResponse
def welcome(request):
return HttpResponse("你好!欢迎来到我的第一个 Django 网站!")
步骤 5:配置 URL 路由
告诉 Django:当用户访问根路径 / 时,调用 welcome 函数。
先修改 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')), # 新增这一行
]
步骤 6:注册应用
在 mysite/settings.py 的 INSTALLED_APPS 列表里加上 'home':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... 其他默认项
'home', # ← 加在这里
]
保存后刷新浏览器,就能看到你的欢迎语了!
五、进阶一点:用模板显示页面
硬编码 HTML 在 HttpResponse 里不优雅。我们改用 模板(Template)。
1. 创建模板目录
在 home 文件夹下新建:
home/
└── templates/
└── home/
└── welcome.html
📌 注意:Django 默认会在每个 App 的
templates/下找模板,且建议再建一层同名文件夹(如home/)避免冲突。
2. 编写 HTML 模板
home/templates/home/welcome.html:
<!DOCTYPE html>
<html>
<head>
<title>我的第一个网站</title>
</head>
<body>
<h1>🎉 你好!</h1>
<p>这是用 Django 渲染的页面。</p>
<p>下一步:试试加入动态数据吧!</p>
</body>
</html>
3. 修改视图函数
home/views.py 改为:
from django.shortcuts import render
def welcome(request):
return render(request, 'home/welcome.html')
刷新页面,样式更清晰了!而且以后改 HTML 不用碰 Python 代码。
六、新手常见问题解答
❓1. 为什么一定要用虚拟环境?
答:避免不同项目依赖冲突。比如 A 项目用 Django 3,B 项目用 Django 4,不用虚拟环境会打架。
❓2. startproject 和 startapp 有什么区别?
答:project 是整个网站(包含配置、多个 app),app 是功能模块(如博客、评论)。一个 project 可包含多个 app。
❓3. 能用 Django 写爬虫吗?
答:不推荐。Django 是 Web 框架,爬虫应该用 requests + BeautifulSoup 或 Scrapy。但你可以用 Django 展示爬虫抓到的数据!比如每天自动抓新闻,存进数据库,再通过网站展示——这才是“代码人生”的完整闭环!
❓4. 为什么改了代码页面没更新?
答:Django 开发服务器会自动重载,但有时需要手动重启(按 Ctrl+C 再 runserver)。另外,确保你保存了文件!
七、下一步学什么?
你已经迈出了关键一步!接下来建议:
- 学数据库操作:用
models.py定义数据表,用makemigrations和migrate同步数据库。 - 尝试 Django Admin:自带后台,5 行代码就能管理数据。
- 做个小项目:比如“待办事项列表”或“个人博客”。
- 部署上线:用 Vercel、Render 或阿里云把网站发布到公网。
🌟 最后一句真心话:
我见过太多人卡在“环境配置”就放弃了。但只要你跑通第一个页面,后面的路会越走越宽。代码人生,从一个能访问的网页开始。
现在,去终端敲下那行 django-admin startproject 吧!你的网站,正在等你创建。

评论 0