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

慵懒猫
2025-06-14 08:50
阅读 260

开篇:Django是什么?用来做什么?

开篇:Django是什么?用来做什么?

你可能听说过Django,它是Python世界中非常流行的Web开发框架之一。简单来说,Django就像是一个“建房工具包”,你可以用它来快速地搭建一个功能齐全的网站或Web应用。

Django 的口号是:“The web framework for perfectionists with deadlines”(为追求完美且时间有限的人设计的 Web 框架)。它的设计目标是让你更轻松、高效地开发复杂的数据驱动型网站,而不用从头做起每个细节。

无论你是想做一个博客系统、电商平台、内容管理系统还是企业级后台管理系统,Django都可以帮助你迅速实现这些功能。


环境准备:一步步搭建你的开发环境

环境准备:一步步搭建你的开发环境

在开始写代码之前,我们先来安装和配置一些必要的开发工具。

1. 安装 Python

Django 是基于 Python 的框架,所以你必须先安装 Python。

  • 前往官网 https://www.python.org/downloads/
  • 下载最新稳定版本(建议使用 3.9 到 3.11 版本)
  • 安装时请勾选 “Add to PATH” 选项
  • 安装完成后,在终端输入:
python --version

如果你看到输出类似 Python 3.x.x,说明安装成功了。

✅ 小贴士:Mac 和 Linux 用户可能已经内置了 Python,但推荐使用虚拟环境来管理项目依赖,避免污染全局环境。


2. 创建虚拟环境

虚拟环境是一个独立的空间,用于存放当前项目的依赖包。

在命令行中执行以下命令:

python -m venv myenv

这会在当前目录创建一个名为 myenv 的文件夹,里面就是你的虚拟环境。

激活虚拟环境:

  • Windows:
myenv\Scripts\activate
  • Mac/Linux:
source myenv/bin/activate

激活后,终端前缀会出现 (myenv) 标志。


3. 安装 Django

现在我们通过 pip 来安装 Django:

pip install django

验证是否安装成功:

django-admin --version

输出如 4.x.x 即表示安装完成。


4. 编辑器推荐

新手推荐使用免费好用的编辑器:VS Code

安装后,可以安装 Python 扩展插件来提升编码效率。


核心概念:Django里的几个关键术语

核心概念:Django里的几个关键术语

学任何新东西,首先要理解基本概念。以下是Django开发中最常见的几个核心术语,我会用最通俗的语言来解释它们。

名称 解释
项目(Project) 整个网站的大框架,包含多个应用,就像是一本书的整体结构
应用(App) 实现具体功能的小模块,比如“用户登录”、“文章列表”等,相当于书中的章节
URL路由(Routing) 决定访问哪个地址会跳转到哪个页面
视图(View) 处理请求、返回响应的地方,就像客服处理顾客的需求
模板(Template) 页面的展示部分,决定了网页长什么样子
模型(Model) 数据库表的定义,记录我们要保存的内容

实战项目:从零开始搭建一个简单的博客网站

为了让你更直观地了解Django的工作方式,我们将一起动手做一个极简版的博客网站。

项目目标:

  • 访问首页可以看到一篇欢迎文章
  • 能通过不同链接查看不同的内容页面

第一步:创建项目

打开终端,执行命令:

django-admin startproject myblog

这会创建一个叫 myblog 的文件夹,进入该文件夹:

cd myblog

现在项目结构如下:

myblog/
├── manage.py
└── myblog/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

第二步:运行服务器看效果

我们先启动默认的Web服务器:

python manage.py runserver

浏览器访问 http://localhost:8000,你会看到“恭喜你!”页面,说明项目搭建好了!

第三步:创建我们的第一个应用

我们要创建一个专门负责文章显示的应用:

python manage.py startapp blog

现在你的项目结构如下:

myblog/
├── blog/        ← 新创建的应用
│   ├── migrations/
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── myblog/
├── db.sqlite3
└── manage.py

接下来我们需要把应用注册到项目里,在 myblog/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',
    'blog',  # 添加这一行
]

第四步:创建你的第一个页面

打开 blog/views.py,修改内容如下:

from django.http import HttpResponse

def home(request):
    return HttpResponse("你好!这是我的第一篇博客文章")

这段代码的意思是:当有人访问 / 这个路径时,就调用这个函数,返回一段文字。

接下来,我们要告诉Django哪个地址对应这个函数。

打开 myblog/urls.py,修改为如下内容:

from django.urls import path
from blog import views

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

再运行一次服务:

python manage.py runserver

刷新 http://localhost:8000,你会看到:

你好!这是我的第一篇博客文章

🎉 恭喜你,你的第一个Django页面完成了!


第五步:美化页面,使用HTML模板

目前只是纯文本,我们来让它显示得像个网页吧。

1. 创建 templates 文件夹

blog 应用根目录下新建一个文件夹 templates/blog/

最终结构应为:

blog/
└── templates/
    └── blog/
        └── home.html

home.html 中编写下面内容:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>我的博客</title>
</head>
<body>
    <h1 style="color: blue;">你好!</h1>
    <p>这是我的第一篇博客文章。</p>
</body>
</html>

2. 修改视图使用模板

回到 views.py,修改内容为:

from django.shortcuts import render

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

刷新页面,你会发现样式发生了变化。


更进一步:给网站加多个页面

我们再来加两个页面:关于我 和 联系我们。

1. 写视图函数

继续在 views.py 添加:

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

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

2. 创建对应的 HTML 模板

blog/templates/blog/ 文件夹中分别创建 about.htmlcontact.html

about.html 示例:

<h1>关于我</h1>
<p>我是小张,一名热爱编程的开发者。</p>

contact.html 示例:

<h1>联系方式</h1>
<ul>
    <li>Email: zhang@example.com</li>
    <li>微信: hello_django</li>
</ul>

3. 配置 URL 路由

修改 urls.py

from django.urls import path
from blog import views

urlpatterns = [
    path('', views.home, name='home'),
    path('about/', views.about, name='about'),
    path('contact/', views.contact, name='contact'),
]

现在你可以访问:


常见问题解答(FAQ)

Q1:启动报错,提示端口被占用怎么办?

错误示例:

Error: That port is already in use.

解决方法:

换一个端口启动:

python manage.py runserver 8001

或者终止占用 8000 端口的程序。


Q2:模板找不到?

确保你的模板放在正确的路径中,并检查拼写是否正确。

例如:templates/blog/home.html

还要确认你在设置文件中没有关闭模板加载(Django 2.2+默认已启用)。


Q3:视图函数不执行?

检查视图是否与 URL 正确关联,注意缩进是否正确、是否存在中文字符、函数名称是否一致。


Q4:为什么不能直接在浏览器中看到修改后的代码?

Django服务器有时缓存了内容,重启服务即可生效:

Ctrl + C  # 停止服务器
python manage.py runserver

Q5:如何退出虚拟环境?

在终端中输入:

deactivate

学习建议:下一步我可以学什么?

恭喜你完成了第一个完整的Django小项目!接下来你可以沿着这些方向继续学习:

  1. 数据库操作:学习如何定义数据模型(model),存储文章内容。
  2. 管理员后台:使用Django自带的Admin系统管理你的网站内容。
  3. 用户认证系统:实现注册、登录、权限控制等功能。
  4. 静态资源管理:引入CSS、JavaScript,让网站更美观。
  5. 部署上线:将网站部署到公网上,让别人也能访问。
  6. 深入学习REST API开发:学习DRF(Django REST Framework)做接口开发。

推荐的学习资源:

  • 📚 官方文档:https://docs.djangoproject.com/zh-hans/4.2/
  • 📘 免费书籍《Django Girls 教程》
  • 💻 B站/YouTube上搜索“Django实战入门”视频
  • 🧠 使用 LeetCode 或 Hackerrank 练手实际项目

总结

通过这篇文章,你已经掌握了Django的基础知识,并亲手搭建了一个简单的博客站点。

记住一句话:“学编程最好的方法就是边学边写。”

不要害怕犯错,每解决一个问题,你就离高手更进一步!

如果你觉得这篇文章对你有帮助,不妨尝试自己再写一个小项目,比如留言版、个人简介页、商品展示网站等等。

有任何问题,欢迎留言交流~

Happy coding! 👨‍💻👩‍💻

评论 0

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