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

分库分表散人
2025-12-18 01:17
阅读 516

大家好!我是小张,一名211高校计算机专业的研二学生。在我的技术博客里,我经常分享一些实用的开发经验,因为我自己当初学Django的时候踩过太多坑——文档看不懂、环境配不好、连“视图”和“模板”都分不清……今天这篇教程,就是专门写给完全零基础的朋友,手把手带你用Django搭出人生第一个网站。

你可能会问:“现在不是流行Go语言做后端吗?为什么还要学Django?”
这是个好问题!确实,Go在高并发场景下性能更优,很多大厂也在用。但Django作为Python生态中最成熟的Web框架,开发效率极高、文档完善、社区活跃,特别适合快速构建原型、做毕业设计,甚至直接上线中小型项目。更重要的是——一个完整的Django项目,能成为你简历上亮眼的一笔

下面,我们就从零开始,一起搭建属于你的第一个网站吧!


一、环境准备:5分钟搞定开发环境

1. 安装Python(推荐3.8+)

确保你已安装Python。打开终端(Windows用CMD或PowerShell,Mac/Linux用Terminal),输入:

python --version
# 或
python3 --version

如果提示“command not found”,请先去 python.org 下载安装。

💡 避坑提示:Windows用户安装时务必勾选 “Add Python to PATH”!

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

虚拟环境能隔离项目依赖,避免包冲突。

# 创建虚拟环境(名字叫 mysite_env)
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.x 即表示成功

二、核心概念:用大白话讲清楚Django的“骨架”

Django遵循 MVT(Model-View-Template)模式,别被名字吓到,其实很简单:

组件 作用 类比理解
Model 数据模型,定义数据库表结构 就像Excel的表头
View 处理业务逻辑,返回响应内容 厨房:接收订单,做菜,上菜
Template 网页模板,负责页面展示(HTML) 菜单+摆盘样式

📌 注意:Django的“View”其实是传统MVC中的“Controller”,这点容易混淆,记住就行。

此外还有两个关键概念:

  • Project(项目):整个网站的容器,包含多个App。
  • App(应用):网站的一个功能模块,比如“博客”、“用户系统”。

我当初学的时候总搞混Project和App,后来明白:一个电商网站(Project)可以包含商品App、订单App、用户App等。


三、实战项目:创建一个“欢迎页面”网站

我们将创建一个最简单的网站:访问首页,显示“Hello, 欢迎来到我的Django网站!”

步骤1:创建项目

django-admin startproject mysite
cd mysite

此时目录结构如下:

mysite/
    manage.py          # 项目管理脚本
    mysite/            # 项目配置目录(同名子文件夹)
        __init__.py
        settings.py    # 配置文件(数据库、时区等)
        urls.py        # 主路由文件
        asgi.py
        wsgi.pt

步骤2:启动开发服务器

python manage.py runserver

看到 Starting development server at http://127.0.0.1:8000/ 就成功了!
打开浏览器访问 http://127.0.0.1:8000,你会看到Django的火箭图标 —— 恭喜,项目跑起来了!

⚠️ 如果端口被占用,可以用 python manage.py runserver 8080 换端口。

步骤3:创建一个App

我们的网站需要一个“主页”功能,创建一个叫 pages 的App:

python manage.py startapp pages

目录新增:

pages/
    migrations/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py   # ← 我们要改这里!

步骤4:注册App

打开 mysite/settings.py,找到 INSTALLED_APPS,添加 'pages'

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

步骤5:编写视图(View)

编辑 pages/views.py

from django.http import HttpResponse

def home_view(request):
    return HttpResponse("Hello, 欢迎来到我的Django网站!")

步骤6:配置路由(URL)

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

  1. pages 目录下新建 urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home_view, name='home'),
]
  1. 修改主路由 mysite/urls.py,引入 pages 的路由:
from django.contrib import admin
from django.urls import path, include  # ← 导入 include

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

步骤7:刷新浏览器!

回到 http://127.0.0.1:8000,你应该看到:

Hello, 欢迎来到我的Django网站!

🎉 恭喜!你的第一个Django网站诞生了!


四、升级一下:用模板(Template)让页面更美观

硬编码HTML不优雅,我们用模板分离逻辑和界面。

1. 创建模板目录

pages 目录下新建文件夹:

pages/
    templates/
        pages/
            home.html

2. 编写HTML模板

pages/templates/pages/home.html 内容:

<!DOCTYPE html>
<html>
<head>
    <title>我的第一个Django网站</title>
</head>
<body>
    <h1>Hello, 欢迎来到我的Django网站!</h1>
    <p>当前时间是:{{ current_time }}</p>
</body>
</html>

注意 {{ current_time }} 是Django模板变量,稍后我们会传值进去。

3. 修改视图,使用模板

更新 pages/views.py

from django.shortcuts import render
from datetime import datetime

def home_view(request):
    context = {
        'current_time': datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    }
    return render(request, 'pages/home.html', context)

4. 刷新页面

现在页面不仅有标题,还会显示实时时间!这就是模板的力量。

性能小贴士:Django模板引擎已经做了缓存优化,对小型网站完全够用。如果未来需要更高性能,可考虑前后端分离 + Vue/React,但初学者不必过早优化


五、新手常见问题解答(FAQ)

Q1:为什么访问不了127.0.0.1:8000?

  • 检查是否运行了 runserver
  • Windows防火墙可能拦截,尝试关闭临时测试
  • 如果用了WSL,需用 runserver 0.0. :8000 并访问 localhost:8000

Q2:修改代码后页面没更新?

Django开发服务器会自动重载,但有时会卡住。按 Ctrl+C 停止后重新 runserver 即可。

Q3:如何连接数据库?

Django默认用SQLite(文件型数据库),无需额外配置。生产环境才需换MySQL/PostgreSQL。初学者直接用默认即可

Q4:这个项目能写进简历吗?

当然可以!即使简单,也展示了你掌握:

  • Web框架基本使用
  • MVC/MVT架构理解
  • 模板与视图分离思想

建议后续扩展功能(如留言版、用户登录),形成完整作品集。


六、学习建议 & 下一步路线

你已经迈出了关键一步!接下来我建议:

短期目标(1-2周)

  • 学习Django ORM(用Python操作数据库)
  • 实现一个“待办事项”列表(增删改查)
  • 添加用户认证(Django内置 auth 模块超方便!)

中期目标(1个月)

  • 部署到云服务器(如阿里云ECS + Nginx + Gunicorn)
  • 学习REST API(用Django REST Framework)
  • 对比Go的Gin/Echo框架,理解不同语言生态差异

关于Go vs Django

场景 推荐技术 原因
快速原型、学习 Django 开发快、文档全、生态成熟
高并发微服务 Go 性能强、内存占用低
简历多样性 两者都学 展示你懂多种技术栈

💬 我的经验:我在实习面试时,面试官看到我GitHub上有Django项目,直接让我现场讲设计思路——一个完整的小项目,胜过十句“熟悉Python”


结语

今天我们一起用不到50行代码,搭建了一个真正的Web应用。虽然简单,但它具备了现代Web开发的核心要素:路由、视图、模板、静态资源分离。

记住:所有大神都是从“Hello World”开始的。不要怕简单,重要的是动手做。做完这个教程,马上去扩展它——加个计数器、做个天气查询、接入API……你的简历项目,就从这里起步!

如果你觉得这篇教程有帮助,欢迎关注我的技术博客,我会持续更新更多“从零到上线”的实战教程。下期见!

评论 0

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