从零开始,用Django搭出你的第一个Python网站

代码评审刺客
2026-01-18 18:33
阅读 1684

大家好,我是一个从培训班出来的前端开发,但别被“前端”俩字骗了——为了找工作,我也啃过不少后端技术,其中就包括今天要讲的 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 却看不到效果,折腾半小时才发现忘了保存文件……所以,改完代码记得保存 + 刷新浏览器


接下来怎么学?给你的学习路线建议

  1. 先做小项目巩固基础
    比如:个人博客、待办事项、简易论坛。重点练 模型设计 → 视图逻辑 → 模板渲染 这条链路。

  2. 别急着学算法,先搞定项目
    求职时,一个完整的 Django 项目比 LeetCode 刷 100 题更有说服力(当然,算法也要刷,但别本末倒置)。

  3. 了解 REST API
    后面可以学 Django REST framework,让你的网站能和前端(比如 Vue/React)对接,做成前后端分离项目。

  4. 部署上线
    用免费平台(如 Render、Railway)把项目部署到网上,简历上直接贴链接!

  5. 关于 Go
    如果你对高并发感兴趣,可以在掌握 Django 后再去学 Go。但 第一份工作,能干活比“技术栈时髦”更重要


最后说两句

我当初从培训班出来,简历上就靠一个 Django 博客项目拿到了第一份工作。面试官问我:“你这个评论功能怎么防刷?” 我虽然答得磕磕绊绊,但至少能跑起来、能改、能解释,这就够了。

编程不是比谁懂的概念多,而是谁能解决问题。今天你搭的这个“名言网站”,就是你迈向全栈开发的第一步。

别怕慢,别怕错。敲下去,跑起来,你就已经超过 80% 的观望者了。

加油!你的第一个网站,已经诞生了 🚀

评论 0

最热最新
暂无评论
代码评审刺客Lv.1
0
影响力
0
文章
0
粉丝