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

Docker搬运工
2025-06-18 08:38
阅读 4248

开篇:Django是什么?我能用它做什么?

开篇:Django是什么?我能用它做什么?

嘿,欢迎来到这个教程!如果你是一个完全没有编程经验的新手,但又想亲手搭建一个网站,那你来对地方了!

什么是Django?

Django 是一个 用 Python 写的框架(英文叫 framework),它可以帮助我们更容易地开发强大的、功能齐全的网站。你可以把它想象成“盖房子的图纸”,它已经帮你规划好了大部分结构,你只需要专注于“装修”部分。

我能用Django做什么?

  • 做博客网站
  • 做电商网站(像淘宝那种)
  • 做社交平台(像微博那样)
  • 做企业官网
  • 甚至做后台管理系统或数据分析平台……

简单来说:你想做的任何复杂一点的网站,都可以用 Django 来实现!


环境准备:搭建你的Django开发环境

环境准备:搭建你的Django开发环境

在开始写代码之前,我们得先准备好开发环境,就像你要做饭得先买锅一样 😄

第一步:安装 Python

Django 是基于 Python 的,所以首先需要安装 Python。

下载地址:

前往 https://www.python.org/downloads/
选择适合你系统的版本下载并安装。

✅ 安装时请勾选 Add Python to PATH,这样系统就能找到它啦。

安装完成后,在命令行中输入以下命令查看是否安装成功:

python --version

如果输出类似下面的内容,说明安装成功:

Python 3.12.2

第二步:安装 pip 工具(一般安装Python时自带)

pip 是用来安装 Python 包的工具。你可以通过以下命令检查:

pip --version

第三步:安装 Django

使用 pip 安装 Django:

pip install django

等待安装完成后,可以运行以下命令检查是否安装成功:

django-admin --version

你应该会看到类似这样的输出:

4.2.7

✅ 太棒了!Django 已经安装好了!


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

微服务架构示意图-1

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

虽然你现在还不懂这些词,但没关系,我用最简单的话来解释给你听👇

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

  • 项目(Project):相当于一个完整网站的大本营,里面包含了整个网站的基本配置和多个子模块。
  • 应用(App):是项目里具体的某一块功能,比如“用户登录”、“文章展示”等功能都各自是一个 App。

举个例子:假设你是开一家超市的老板(整个 Django 项目就是你超市),那么:

  • “收银台”是一个 App;
  • “库存管理”是另一个 App;
  • “顾客会员系统”又是一个 App;
  • 所有这些东西都在你这家超市(Project)里。

💡 一个项目可以包含多个 App,但一个 App 只属于一个项目。

2. 模型(Model)

模型就像是网站里的“数据库表格”。

比如你要做一个博客网站,每一篇博客文章都需要一些信息:

  • 标题
  • 内容
  • 发布时间
  • 是否发布状态

这些信息就可以通过模型定义为一张叫做 Post 的“虚拟表格”。

Django 会帮你在背后创建真正的数据库表,你只需要写简单的 Python 类!

3. 视图(View)

视图相当于“控制中心”。当你访问一个网页的时候,Django 会调用一个对应的视图函数,然后根据它的逻辑决定该显示什么内容。

比如你在浏览器中访问 /hello/,Django 就会调用我们写的 hello_view() 这个函数,然后返回一段 HTML 页面。

4. 路由(URL)

路由就相当于网站页面的“导航地图”。

你可以理解为每一个 URL 地址(比如 http://example.com/about)对应了一个视图函数,告诉 Django:“用户访问这个网址时该执行哪段代码”。

5. 模板(Template)

模板就是网页的“外壳”,它长得像 HTML 文件,但是可以嵌入变量和动态内容。

比如你可以写一个叫 post_list.html 的文件,专门用来显示所有博客文章列表。


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

现在我们来实战一下吧!我们将用 Django 创建一个非常简单的博客网站,名字就叫 HelloBlog 😊

第一步:创建项目 HelloBlog

打开终端(或者命令提示符),运行下面这句命令:

django-admin startproject HelloBlog

这会创建一个名为 HelloBlog 的文件夹,里面有如下结构:

HelloBlog/
├── manage.py             # 项目的管理脚本
└── HelloBlog/            # 项目配置文件目录
    ├── __init__.py       # 标识这是一个包
    ├── settings.py       # 项目设置
    ├── urls.py           # 项目的总路由配置
    └── wsgi.py           # 服务器部署接口

进入项目根目录:

cd HelloBlog

启动内建服务器看看效果:

python manage.py runserver

你会看到如下输出:

Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

打开浏览器访问:http://127.0.0.1:8000/
你会看到熟悉的 Django 欢迎界面 🎉

按 Ctrl + C 停止服务器。


第二步:创建我们的博客应用 blog

在项目根目录下运行以下命令:

python manage.py startapp blog

这会在项目中生成一个新的文件夹:blog/,里面有很多默认生成的文件。

我们要把这个新的应用注册到项目中。打开 HelloBlog/settings.py,找到这一块:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

负载均衡配置-2

添加 'blog', 到最后,变成:

INSTALLED_APPS = [
    ...
    'blog',
]

✅ 应用注册完毕!


第三步:创建博客文章的数据结构(模型)

编辑 blog/models.py,写入以下代码:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)     # 标题字段
    content = models.TextField()                 # 正文内容
    created_at = models.DateTimeField(auto_now_add=True)   # 创建时间
    published = models.BooleanField(default=True)          # 是否发布

    def __str__(self):
        return self.title

这段代码的意思就是:我们定义了一个叫 Post 的数据模型,它代表一篇博客文章。

保存后,在命令行运行以下两个命令来创建数据库表:

python manage.py makemigrations
python manage.py migrate

🎉 数据库建好了!


第四步:创建管理员账户(方便后面管理)

运行以下命令创建超级管理员账户:

python manage.py createsuperuser

会让你输入用户名、邮箱和密码(记下来哦~)

接着运行服务:

python manage.py runserver

访问 http://127.0.0.1:8000/admin,用你刚创建的账号登录进去 👀

这时候还没有看到 Blog 的内容,我们需要注册一下模型到后台。

编辑 blog/admin.py,替换为:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

刷新后台页面,应该就能看到 Post 模块了!试着添加一篇新文章试试看吧 📝


第五步:展示文章内容(视图 + 模板)

我们现在想让访客能在首页看到所有发布的文章。

首先,编辑 blog/views.py,写入以下内容:

from django.shortcuts import render
from .models import Post

def post_list(request):
    posts = Post.objects.filter(published=True).order_by('-created_at')
    return render(request, 'blog/post_list.html', {'posts': posts})

这表示我们从数据库取出所有已发布的文章,并按创建时间倒序排列,然后把结果传给模板文件 post_list.html。

现在我们要创建模板文件:

在 blog 目录下新建一个文件夹:

mkdir templates
mkdir templates/blog

然后新建文件 templates/blog/post_list.html,内容如下:

<!DOCTYPE html>
<html>
<head>
    <title>我的博客</title>
</head>
<body>
    <h1>欢迎来到我的博客!</h1>
    {% for post in posts %}
        <div style="margin-bottom: 20px;">
            <h2>{{ post.title }}</h2>
            <p>{{ post.content|truncatewords:50 }}</p>
            <small>{{ post.created_at }}</small>
        </div>
    {% empty %}
        <p>暂时还没有文章哦~</p>
    {% endfor %}
</body>
</html>

这个 HTML 页面中使用了 Django 模板语法,比如 {% for %} 和 {{ variable }},它们的作用是动态插入内容。


第六步:配置路由

现在要让访问某个 URL 时显示上面的文章列表页。

编辑主项目的路由配置文件 HelloBlog/urls.py:

from django.contrib import admin
from django.urls import path
from blog import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.post_list, name='post_list'),  # 添加这一行
]

现在重启服务器:

python manage.py runserver

访问 http://127.0.0.1:8000/,你应该会看到刚才添加的文章列表了!

🎉 恭喜你,你已经完成了一个完整的博客网站雏形!


常见问题解答

Q1:为什么访问网页出现 TemplateDoesNotExist 错误?

这个问题通常是因为模板路径不对。确保你创建的模板文件路径如下:

blog/templates/blog/post_list.html

而且你没有忘记注册 App 或者拼写错误。

Q2:为什么新增的文章不显示?

可能因为你没有勾选“published(是否发布)”选项。检查一下你添加文章时是否选择了 Published 为 True。

Q3:Django 启动时报错 "port 8000 is already in use"

这是因为之前的服务器还在运行。关闭终端窗口或使用 Ctrl + C 停止即可,也可以指定其他端口启动:

python manage.py runserver 8001

Q4:manage.py 是干什么的?

它是 Django 提供的一个命令行工具,用于执行各种管理操作,比如启动服务、迁移数据库、创建管理员等等。


学习建议:下一步学习方向推荐

恭喜你完成了第一个 Django 项目!接下来你可以继续学习这些内容:

✅ 推荐学习顺序:

  1. 深入学习模型:学会如何建立复杂的关系(一对多、多对多等)
  2. 表单处理:让用户能够提交数据,如评论留言、发表文章
  3. 模板继承:复用头部、底部等公共结构,避免重复代码
  4. 静态资源管理:引入 CSS、JavaScript 和图片资源美化网站
  5. 分页功能:当文章很多时,实现翻页功能
  6. 用户认证:注册、登录、权限控制
  7. 使用 Bootstrap 美化页面
  8. 部署上线:将网站上传到网上让别人也能访问

📚 推荐学习资源:

  • 官方文档:https://docs.djangoproject.com/zh-hans/
  • 《Django Girls 教程》中文版(适合零基础)
  • B站搜索 “Django入门” 有很多高质量视频
  • 本书推荐:《流畅的Python》+《Django企业开发实战》

结语:坚持就是胜利!

Django 是一个强大又易于上手的框架,只要你动手实践,慢慢就会爱上它。记住一句话:

编程不是天才的专利,而是勤学苦练的结果!

别担心一开始犯错,只要每天进步一点点,不久之后你就能做出自己的个人博客、电商平台、管理系统等等。

如果你喜欢这篇教程,请点赞分享支持我继续创作更多新手友好的技术文章。我们下次再见啦!👋

评论 0

最热最新
暂无评论
Docker搬运工Lv.1
0
影响力
0
文章
0
粉丝