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

独立开发路上
2025-06-23 11:40
阅读 487

开篇:Django 是什么?能做什么?

开篇:Django 是什么?能做什么?

你是否想过自己动手做一个网站?现在,我们就要用 Django 这个强大的工具来实现这个目标。

Django 是一个使用 Python 编写的 Web开发框架。它的核心思想是帮助开发者快速、高效地构建安全又功能强大的网站。

简单理解一下什么是“框架”:它就像建房子用的脚手架——你可以直接在上面添加“砖瓦”,而不是从头搭架子。

Django 特别适合用来开发包含数据库的网站,比如博客、论坛、电商平台等。它有很多内置功能,比如用户认证系统、后台管理界面、数据库操作工具等等,这些都可以让我们少写很多重复代码,把精力集中在真正的业务逻辑上。

环境准备:搭建开发环境(Windows / macOS / Linux通用)

环境准备:搭建开发环境(Windows / macOS / Linux通用)

系统架构设计图-2

1. 安装 Python(建议版本:3.9 或以上)

首先确保你的电脑已经安装了 Python。

  • 打开终端或命令行,输入以下命令:
python --version

如果你看到类似 Python 3.x.x 的输出,则说明已经安装好了;否则,请前往 https://www.python.org/downloads/ 下载并安装对应系统的最新稳定版 Python。

⚠️ 小贴士:有些系统默认命令可能是 python3,而 Windows 有时也叫 py,注意区分。

2. 安装 Django

使用 Python 自带的包管理工具 pip 来安装 Django:

pip install django

安装完成后检查是否成功:

django-admin --version

你应该会看到一个版本号,例如 4.2.5,表示安装成功。

3. 创建项目目录

为你的第一个网站创建一个专属文件夹,这里我们命名为 my_first_website

mkdir my_first_website
cd my_first_website

核心概念:Django 中的关键组件有哪些?

虽然这是入门教程,但我们要先了解几个核心组件,这样后面实践时就不会迷路啦!

1. 项目(Project)和应用(App)

  • 项目:是一个总的容器,里面可以包含多个功能模块(App),比如博客模块、用户登录模块。
  • 应用:指的是某个具体的功能块。例如一个商城项目里可能有商品展示 App、订单管理 App、会员中心 App。

我们可以用一句话记住它们的关系:一个项目由多个应用组成。

2. 模型(Model)、视图(View)、模板(Template) - MVC 结构简化版

Django 使用的是一种叫做 MVT 的架构模式,跟经典的 MVC 很像:

组件 作用 对应代码文件
Model(模型) 负责数据相关的定义 models.py
View(视图) 控制器角色,处理请求返回响应 views.py
Template(模板) 展示页面的样子 html 文件

简单来说:

  • Model:告诉你网站要保存哪些数据;
  • View:决定访问某条链接时显示什么内容;
  • Template:就是网页的 HTML 页面模板。

3. 管理后台(Admin Site)

Django 自带一个超级好用的管理后台,只需注册模型后就可以对数据进行增删改查,完全不用自己写界面。我们后面实战中会亲自体验一下。


实战项目:一步步创建属于你的第一个 Django 网站

现在我们来正式开始搭建网站。我们将做一个非常简单的个人博客首页

步骤一:创建项目

我们已经在前面进入过 my_first_website 目录,现在执行下面这条命令来创建整个项目的结构:

django-admin startproject config .

这会在当前目录下生成如下结构:

my_first_website/
├── manage.py        # 项目的总控制脚本
└── config/
    ├── __init__.py
    ├── settings.py     # 项目配置文件
    ├── urls.py         # 整体网址路由配置
    └── wsgi.py         # 部署相关文件(暂时不需要关心)

其中最重要的文件是 settings.pyurls.py

步骤二:运行开发服务器看看效果

运行下面的命令启动开发服务器:

python manage.py runserver

你会看到类似如下的信息:

Starting development server at http://127.0.0.1:8000/

现在打开浏览器访问该地址:http://127.0.0.1:8000/,你能看到一个 Django 默认欢迎页,说明你的项目运行起来了 ✅

步骤三:创建第一个应用 blog

接下来我们创建一个名字叫 blog 的应用:

python manage.py startapp blog

这时项目目录变成这样:

my_first_website/
│
├── manage.py
├── config/
│   ├── ...
│
└── blog/             # 新建的博客应用
    ├── migrations/
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── models.py
    ├── tests.py
    └── views.py

步骤四:让 Django 认识新的应用

打开 config/settings.py 文件,在 INSTALLED_APPS 列表中添加 'blog'

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
    # 我们自己的 app
    'blog',
]

缓存策略对比-1

步骤五:写第一个页面 —— 博客首页

我们要实现的功能很简单:访问 /blog 时显示一句话 “欢迎来到我的博客!”

第一步:编辑 blog/views.py 文件

from django.http import HttpResponse

def index(request):
    return HttpResponse("欢迎来到我的博客!")

这个函数接收一个请求(request),然后返回一个字符串作为响应(response)。

第二步:将 URL 与这个函数关联起来

我们需要创建一个 urls.py 文件来告诉 Django 哪个网址调用哪个视图函数。

blog 应用目录下新建一个文件:urls.py,并添加如下内容:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

这里的空字符串 ' ' 表示根路径(也就是 /blog 后不加其他字符)。

第三步:主项目的 urls.py 也要设置路由

打开 config/urls.py,修改如下:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),  # 添加这一句
]

这相当于告诉 Django:当用户访问 /blog/ 这个地址时,去 blog 应用的 urls.py 中找下一步怎么处理。

第四步:重启服务测试

停止当前服务按 Ctrl+C,重新运行:

python manage.py runserver

访问:http://127.0.0.1:8000/blog/

如果看到这句话:欢迎来到我的博客!,那恭喜你完成了第一个 Django 页面 😄

步骤六:添加一个 HTML 模板页面

现在我们要把之前的纯文本改成更美观的网页形式,这就需要使用 模板(Template)

第一步:创建 templates 目录

Django 规定所有 HTML 模板统一放在一个叫 templates 的目录下。一般我们会放在每个应用自己的文件夹里。

在 blog 应用下创建文件夹结构如下:

blog/
├── templates/
│   └── blog/
│       └── index.html

然后在 index.html 里添加一些 HTML 内容:

<!DOCTYPE html>
<html>
<head>
    <title>我的第一个博客</title>
</head>
<body>
    <h1>欢迎来到我的博客</h1>
    <p>这是一个使用 Django 构建的超简单博客首页。</p>
</body>
</html>

第二步:修改视图文件 blog/views.py

render() 方法替换之前那个 HttpResponse(),代码如下:

from django.shortcuts import render

def index(request):
    return render(request, 'blog/index.html')

现在刷新刚才的网页,你会发现页面变成了 HTML 页面 🎉


常见问题解答

以下是新手常见的几个疑问👇

Q1:为什么我运行不了 Django?

  • 可能原因:
    • Python 没有正确安装
    • pip 没有安装 Django(可尝试执行 pip install django
    • 拼写错误导致找不到命令,比如 manage.py 没有放对位置

Q2:报错 “TemplateDoesNotExist” 怎么办?

  • 最常见的问题是模板路径不对。请按照目录规范存放 index.html,确保是这样的结构:
blog/templates/blog/index.html
  • 检查是否漏写了 'DIRS': [os.path.join(BASE_DIR, 'templates')] 在 settings.py 里(虽然默认支持各 app 的 templates 文件夹,但如果想集中放也可以设置全局 templates)

Q3:无法访问本地服务器怎么办?

  • 检查端口是否被占用
  • 是否启用了防火墙导致限制访问
  • 如果你是在云服务器上操作,记得开放相应端口(如 8000)

学习建议:下一步学什么?

当你掌握了上面的基础知识后,恭喜你迈出了重要一步!接下来推荐学习内容:

  1. 数据库与模型(Models):掌握如何设计文章模型、作者模型,并连接 SQLite 数据库。
  2. 管理后台(Admin):学会注册模型并自动生成后台 CRUD 页面。
  3. 静态资源管理(CSS / JS / 图片)
  4. 进阶页面跳转、URL 设计技巧
  5. 部署上线(Nginx + Gunicorn)

Django 是一个非常适合入门且功能丰富的后端开发框架。坚持练习小项目,比如博客、电商、问卷调查系统等,你就离成为 Python Web 开发者不远了!


小结

通过本文的学习,你现在应该已经:

✅ 理解 Django 是什么以及它用来做什么
✅ 成功搭建了开发环境
✅ 创建了自己的第一个项目并运行了服务器
✅ 实现了一个简单的网页并通过模板渲染出来

只要跟着本文一步步操作,即使是零基础的同学也能完成这个小项目 💪。继续努力吧,前方还有更有趣的世界等着你去探索!

评论 0

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