从零开始,用Django搭出你的第一个Python网站
大家好,我是一个从培训班出来的前端开发,但别被“前端”俩字骗了——为了找工作,我也啃过不少后端技术,其中就包括今天要讲的 Django。我当初学的时候,光看文档就头大:什么 MTV、ORM、路由分发……完全不知道从哪下手。后来硬着头皮做了个小项目,才真正入门。所以今天,我想用最通俗的方式,带你从零搭建一个能跑的 Django 网站,哪怕你连 Python 都没写过几行。
为什么选 Django?它和 Go、求职、项目有啥关系?
先说清楚:Django 是一个用 Python 写的 Web 框架,专门用来快速搭建网站后端。你不用从零造轮子,比如用户登录、数据库操作、URL 路由这些功能,Django 都给你准备好了。
可能你会问:“现在不是流行 Go 吗?为啥还学 Python 和 Django?”
确实,Go 在高性能后端很火,但 Django 在中小型项目、创业公司、甚至大厂内部工具中依然非常常见。更重要的是——对新手友好!你不需要懂复杂的并发模型,也不用操心内存管理,写几行代码就能看到一个网页跑起来。这对求职来说太重要了:面试官更看重你有没有完整的项目经验,而不是你用了多“高级”的语言。
而且,很多算法题刷得再溜,没有项目展示,简历还是空荡荡。用 Django 做个博客、待办清单、甚至简易电商,都能成为你求职时的亮点项目。
第一步:环境准备(别怕,超简单)
1. 安装 Python
去官网 https://www.python.org/downloads/ 下载最新版(建议 3.8+),安装时记得勾选 “Add to PATH”(Windows 用户)。
验证是否成功:
python --version
# 或者
python3 --version
2. 创建虚拟环境(推荐!)
虚拟环境就像一个“隔离的房间”,避免不同项目之间的依赖冲突。我当初就是因为没用虚拟环境,装了一堆包最后全乱了。
# 创建虚拟环境(名字叫 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.x),恭喜你,环境搞定!
第二步:理解 Django 的核心概念(用大白话)
Django 有个口号:“Don’t Repeat Yourself”(别重复造轮子)。它用几个核心概念帮你省力:
| 概念 | 大白话解释 | 对应文件 |
|---|---|---|
| 项目(Project) | 整个网站的“总指挥部”,包含所有配置 | settings.py, urls.py |
| 应用(App) | 网站的一个功能模块,比如“博客”、“用户系统” | 自己创建的 app 文件夹 |
| 模型(Model) | 描述数据长什么样,比如“文章有标题、内容、发布时间” | models.py |
| 视图(View) | 处理用户请求,返回网页或数据 | views.py |
| 模板(Template) | 网页的 HTML 结构,可以嵌入动态数据 | .html 文件 |
| URL 路由 | 把网址(比如 /blog/)对应到某个视图函数 |
urls.py |
💡 我当初混淆“项目”和“应用”好久。记住:一个项目可以包含多个应用,比如你的网站既有“博客”应用,也有“用户中心”应用。
第三步:动手!做一个“今日名言”网站
我们来做一个超简单的网站:打开首页,显示一句随机名言。
1. 创建项目
django-admin startproject quotesite
cd quotesite
2. 创建应用
python manage.py startapp quotes
3. 注册应用
打开 quotesite/settings.py,找到 INSTALLED_APPS,加上 'quotes':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... 其他默认的
'quotes', # ← 加这一行
]
4. 写视图(View)
编辑 quotes/views.py:
from django.http import HttpResponse
import random
def home(request):
quotes_list = [
"人生苦短,我用 Python。",
"不要重复造轮子。",
"代码写得好,下班下得早。"
]
selected = random.choice(quotes_list)
return HttpResponse(f"<h1>今日名言</h1><p>{selected}</p>")
5. 配置 URL 路由
先在 quotes 文件夹里新建 urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
然后修改 quotesite/urls.py,把请求转发给 quotes 应用:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('quotes.urls')), # ← 主页交给 quotes 处理
]
6. 启动服务器
python manage.py runserver
打开浏览器,访问 http://127.0.0.1:8000,刷新几次,看看名言是不是变了?
🎉 恭喜!你已经做出了第一个 Django 网站!
第四步:加入数据库(让数据持久化)
刚才的名言是写死在代码里的,下次想加新名言还得改代码。不如存到数据库?
1. 定义模型(Model)
编辑 quotes/models.py:
from django.db import models
class Quote(models.Model):
text = models.CharField(max_length=200)
author = models.CharField(max_length=100)
def __str__(self):
return f'"{self.text}" — {self.author}'
2. 创建并执行迁移
# 生成迁移文件
python manage.py makemigrations
# 应用到数据库(Django 默认用 SQLite,无需额外安装)
python manage.py migrate
3. 注册到后台(方便添加数据)
编辑 quotes/admin.py:
from django.contrib import admin
from .models import Quote
admin.site.register(Quote)
4. 创建超级管理员
python manage.py createsuperuser
# 按提示输入用户名、邮箱、密码
5. 修改视图,从数据库读取
更新 quotes/views.py:
from django.http import HttpResponse
from .models import Quote
import random
def home(request):
all_quotes = list(Quote.objects.all())
if not all_quotes:
return HttpResponse("<h1>暂无名言</h1>")
selected = random.choice(all_quotes)
return HttpResponse(f"<h1>今日名言</h1><p>\"{selected.text}\" — {selected.author}</p>")
6. 测试
- 启动服务器:
python manage.py runserver - 访问
http://127.0.0.1:8000/admin,用刚才创建的账号登录 - 在后台添加几条名言
- 回到首页,刷新看看!
新手常踩的坑 & 解决方案
| 问题 | 原因 | 解决办法 |
|---|---|---|
| 页面显示 404 | URL 配置错了 | 检查 urls.py 路径是否匹配 |
| 数据库没更新 | 忘了执行 migrate |
运行 makemigrations + migrate |
| 改了代码页面没变 | 服务器没重启 | 修改代码后需重启 runserver |
| 中文乱码 | 编辑器没用 UTF-8 | 用 VS Code 等现代编辑器,默认就是 UTF-8 |
| 找不到模块 | 虚拟环境没激活 | 激活虚拟环境后再运行命令 |
💡 我当初改了
views.py却看不到效果,折腾半小时才发现忘了保存文件……所以,改完代码记得保存 + 刷新浏览器!
接下来怎么学?给你的学习路线建议
先做小项目巩固基础
比如:个人博客、待办事项、简易论坛。重点练 模型设计 → 视图逻辑 → 模板渲染 这条链路。别急着学算法,先搞定项目
求职时,一个完整的 Django 项目比 LeetCode 刷 100 题更有说服力(当然,算法也要刷,但别本末倒置)。了解 REST API
后面可以学 Django REST framework,让你的网站能和前端(比如 Vue/React)对接,做成前后端分离项目。部署上线
用免费平台(如 Render、Railway)把项目部署到网上,简历上直接贴链接!关于 Go
如果你对高并发感兴趣,可以在掌握 Django 后再去学 Go。但 第一份工作,能干活比“技术栈时髦”更重要。
最后说两句
我当初从培训班出来,简历上就靠一个 Django 博客项目拿到了第一份工作。面试官问我:“你这个评论功能怎么防刷?” 我虽然答得磕磕绊绊,但至少能跑起来、能改、能解释,这就够了。
编程不是比谁懂的概念多,而是谁能解决问题。今天你搭的这个“名言网站”,就是你迈向全栈开发的第一步。
别怕慢,别怕错。敲下去,跑起来,你就已经超过 80% 的观望者了。
加油!你的第一个网站,已经诞生了 🚀

评论 0