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

Django老掌柜
2025-06-28 14:04
阅读 2230

开篇:什么是Django?它可以用来做什么?

开篇:什么是Django?它可以用来做什么?

你好,欢迎来到本教程!无论你是刚刚开始学习编程,还是想掌握一个实用的后端开发工具,这篇《Django入门教程》都适合你。

Django 是什么?简单来说,它是一个基于 Python 的 Web 开发框架。你可以把它理解为一套“建筑模板”,有了这个模板,我们就可以更高效、更规范地搭建功能齐全的网站和 Web 应用。

为什么选择 Django?

  1. 简洁易上手:它的设计哲学是 “尽可能减少重复劳动”,很多功能已经帮你准备好了。
  2. 功能全面:自带了数据库操作(ORM)、用户认证、后台管理等模块,不需要额外安装很多东西就能开始开发。
  3. 社区强大:遇到问题时,网上能找到大量资源,官方文档也非常详细。
  4. 适合初学者:因为结构清晰,特别适合第一次做网站开发的新手。

在接下来的教程中,我们将一步步从零开始搭建一个简单的个人博客网站,让你快速了解并掌握 Django 的基本用法。


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

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

第一步:安装 Python

Django 是基于 Python 的框架,因此我们需要先在电脑上安装 Python。请按照你的系统下载对应的版本:

  • Windows 用户可以访问 https://www.python.org/
  • Mac 用户通常已有 Python,但建议使用最新版本(可通过 Homebrew 安装)

安装完成后,在命令行输入以下命令来验证是否成功:

python --version

如果看到类似 Python 3.8.x 或更高版本信息,说明安装成功!

📝 如果显示的是 python 找不到,可以尝试使用 python3 替代。


第二步:创建虚拟环境(Virtual Environment)

虚拟环境就像每个项目的独立工作间,可以避免不同项目之间的依赖冲突。

运行下面的命令来创建一个新虚拟环境:

python -m venv myproject_env

激活虚拟环境:

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

激活之后,你的命令行前会出现 (myproject_env) 字样,表示你现在处于隔离环境中。


第三步:安装 Django

现在我们可以在虚拟环境中安装 Django:

pip install django

然后验证一下 Django 是否安装成功:

django-admin --version

如果你看到一个版本号(例如 4.2.5),就说明安装完成了!


核心概念讲解:什么是网站开发的关键点?

为了帮助你更好地理解接下来的实战内容,我们先来介绍几个 Django 的核心概念,并用通俗的语言来解释它们。

数据流转过程-2

🧱 项目(Project) 和 应用(App)

  • 项目(Project):是一个完整的网站工程,可能由多个应用组成。比如一个电商网站可能会有 "商品"、"用户"、"订单" 这三个App。
  • 应用(App):每一个 App 实现一个独立的功能模块。例如,在博客网站里,我们可以有一个 BlogApp 来处理文章相关的功能。

🗃️ 数据库模型(Model)

模型就是一张表格的“蓝图”。例如我们要存储博客文章,就需要定义一个模型描述每篇文章有哪些字段,如标题、作者、正文、发布时间等。

🖼️ 模板(Template)

模板决定网页的外观,也就是 HTML 页面如何展示数据。Django 使用一种专门的语法将变量或逻辑嵌入到 HTML 中。

🚪 视图(View)与 路由(URLconf)

  • 视图负责处理请求(例如用户访问某个页面),并返回响应(通常是 HTML 页面或 JSON 数据)。
  • 路由就像是地图,告诉 Django 当用户访问某个网址时,应该去调用哪个 View 来处理。

这些抽象的概念会在后续实战中更加具体化。别担心记不住,我们马上通过实践来加深理解。


实战项目:一步一步搭建你的第一个博客网站

让我们一起来构建一个简单的博客网站,支持添加和浏览文章。这个过程包括以下几个步骤:

一、创建项目与应用

进入你想存放代码的目录,执行如下命令:

django-admin startproject myblog_project
cd myblog_project

上面这句命令创建了一个名为 myblog_project 的项目。现在我们再创建一个名字叫 blog_app 的应用:

python manage.py startapp blog_app

接着我们需要把这个应用注册进项目中。打开 myblog_project/settings.py 文件,找到 INSTALLED_APPS 列表,加入一行:

'blog_app',

保存文件后继续下一步。


二、定义模型:设计数据结构

打开 blog_app/models.py 文件,修改成如下内容:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField('date published')

    def __str__(self):
        return self.title

这段代码定义了一个叫 Post 的类,它对应数据库的一张表,包含了标题(title)、正文(content)和发布日期(pub_date)这几个字段。

🔍 注意:CharField 长度有限制,TextField 不限制长度;DateTimeField 带时间。

接下来执行两个命令让 Django 创建数据库和表:

python manage.py makemigrations blog_app
python manage.py migrate

三、创建后台管理接口

我们可以通过 Django 提供的后台管理界面来方便地添加文章。

首先创建管理员账号:

python manage.py createsuperuser

按提示输入用户名、邮箱和密码。创建完成后启动服务器:

python manage.py runserver

在浏览器访问 http://127.0.0.1:8000/admin,登录刚才设置的账号。

但你会发现还没有看到我们的 Post 表。我们需要把模型注册进后台。打开 blog_app/admin.py,修改为:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

刷新后台页面,就可以看到“Posts”了!


四、编写视图与模板:显示博客内容

创建视图函数

编辑 blog_app/views.py 文件,写入如下内容:

from django.shortcuts import render
from .models import Post

def index(request):
    posts = Post.objects.order_by('-pub_date')
    return render(request, 'blog_app/index.html', {'posts': posts})

这段代码的意思是:获取所有文章,并按发布日期倒序排列(最新的排最前面),然后传递给一个叫 index.html 的模板进行渲染。

配置 URL 路由

blog_app 目录下新建一个文件 urls.py,内容如下:

from django.urls import path
from . import views

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

再打开项目目录下的 myblog_project/urls.py,将其内容改成:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog_app.urls')),
]

这样访问 /blog/ 就会调用 blog_app 中的路由规则。


创建模板

blog_app 下创建 templates/blog_app 文件夹,并新建 index.html 文件:

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

index.html 里写下如下内容:

<!DOCTYPE html>
<html>
<head>
    <title>我的博客</title>
</head>
<body>
    <h1>我的博客文章</h1>
    
    {% for post in posts %}
        <h2>{{ post.title }}</h2>
        <p>{{ post.content }}</p>
        <small>{{ post.pub_date }}</small>
        <hr />
    {% endfor %}
</body>
</html>

现在再次运行服务:

python manage.py runserver

访问 http://127.0.0.1:8000/blog/,你应该能看到一个简单的博客首页!

你可以试着通过后台添加一些文章来看看效果。


常见问题解答

数据库设计模型-1

❓Q1:报错:ModuleNotFoundError: No module named 'blog_app'

📌 解答:可能是你忘记在 INSTALLED_APPS 里注册这个应用,请检查 settings.py 文件。

❓Q2:无法连接数据库或迁移失败?

📌 解答:可能是数据库配置不正确或者未正确运行 makemigrations / migrate。Django 默认使用 SQLite,对于新手来说是最安全的选择。

❓Q3:运行服务器时出现错误:“Port 8000 is already in use”

📌 解答:另一个进程占用了 8000 端口,可以换其他端口启动服务器:

python manage.py runserver 8001

访问 http://localhost:8001/blog/ 即可。

❓Q4:页面显示为空白,没有文章内容?

📌 解答:请确认你是否已经通过 Admin 添加了 Post 数据,并且 views.py 中的查询逻辑正确。


学习建议:接下来可以学什么?

恭喜你完成了第一个 Django 项目!这是迈向 Web 后端开发的一大步。为了更进一步,建议你继续深入学习以下几个方向:

✅ 基础巩固

  • 深入研究 Django 的 Model 层:多对一、多对多关系处理
  • 学习 Form(表单)功能,实现用户提交内容
  • 掌握模板继承,提高 HTML 模板复用率

🌐 功能扩展

  • 使用 Bootstrap 框架美化前端样式
  • 配置静态资源(CSS、图片、JavaScript)
  • 添加评论系统

🛠️ 性能与部署

  • 学习 Gunicorn + Nginx 部署网站上线
  • 尝试连接 MySQL 或 PostgreSQL 生产级数据库
  • 学会用 Git 进行版本控制与项目协作

如果你想进一步挑战项目,试着做一个带用户登录注册功能的完整博客系统吧!


小结回顾

在这篇面向零基础初学者的《Django入门教程》中,我们一起完成了以下事情:

  1. 安装 Python 并搭建 Django 开发环境
  2. 介绍了项目(Project)、应用(App)、模型(Model)、视图(View)、模板(Template) 等核心概念
  3. 亲手搭建了一个可以添加和展示文章的博客网站
  4. 解决了一些常见问题,给出了进阶学习路线

Django 是一个非常强大的框架,它不仅能简化开发流程,还能帮助我们写出结构清晰、可维护性强的代码。希望这篇教程能点燃你对 Web 开发的热情!

如果你喜欢这篇文章,也可以分享给更多刚入门的同学一起进步。如有任何疑问,欢迎留言提问!

祝你编程愉快 😊

评论 0

最热最新
暂无评论
Django老掌柜Lv.1
0
影响力
0
文章
0
粉丝