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

注释比代码长
2025-06-17 04:58
阅读 549

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

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

如果你是编程新手,听到“Web开发”这个词可能会觉得它离我们很遥远。其实,现代的网页应用背后都有一套复杂的技术来支撑它的运行,而Django就是一个帮助你快速构建动态网页的强大工具。

Django 是一个用 Python 编写的开源 Web 框架(也叫做“框架”)。你可以把它想象成一个积木套装,它已经为我们准备好了许多基础功能,比如数据库管理、用户登录功能、管理员后台等等。有了 Django,我们可以将更多精力集中在实现自己的创意上,而不是从零开始搭建这些复杂的功能。

那么,Django 主要能做些什么呢?以下是一些常见用途:

  1. 博客网站:展示文章内容,并支持访客留言评论。
  2. 电商网站:商品展示、购物车和支付功能。
  3. 社交平台:注册、登录、发布动态或照片等。
  4. 管理系统:例如企业的员工信息管理、库存管理等。

简单来说,无论你想搭建什么样的网站,Django 都可以为你提供强有力的后端支持。而且最重要的是,它是为 Python 初学者设计的,对新手非常友好。

接下来,我们将一步步从环境搭建开始,到最终完成一个简单的网站项目,带你进入 Django 的世界!


环境准备:详细步骤搭建开发环境

环境准备:详细步骤搭建开发环境

在使用 Django 之前,我们需要准备好开发环境。这就像搭好工作台一样,确保后续的工作能顺利进行。以下是详细的安装步骤:

第一步:安装 Python

Django 是基于 Python 的框架,所以首先需要安装 Python。目前推荐版本是 Python 3.x,因为这是社区主流且持续更新的版本。

Windows 用户:

  1. 前往 https://www.python.org/downloads/ 下载最新版的 Python 安装程序。
  2. 打开下载好的安装程序,在安装界面中勾选 Add Python to PATH(非常重要!)。
  3. 点击 "Install Now" 完成安装。

macOS 用户:

macOS 系统通常自带 Python,但我们建议安装最新的版本:

  1. 同样访问上述链接下载对应操作系统的安装包。
  2. 双击安装程序按提示完成安装。

Linux 用户:

以 Ubuntu 为例,可以通过以下命令安装 Python:

sudo apt update
sudo apt install python3

完成后,打开终端或命令行工具,输入以下命令验证是否安装成功:

python --version

如果显示类似 Python 3.10.x 这样的信息,说明安装成功!


第二步:安装 pip(Python 包管理器)

Pip 是 Python 的官方包管理工具,用于安装第三方库(如 Django),大多数新版 Python 已经自带了 pip。检查 pip 是否存在只需输入:

pip --version

如果看到类似 pip x.x.x from ... (python 3.x) 的输出,则表示已安装。

如果未安装,请参考官方文档安装指南:https://pip.pypa.io/en/stable/installation/


第三步:安装 Django

确认好 Python 和 pip 都安装完毕之后,就可以通过 pip 来安装 Django。请执行以下命令:

pip install django

等待片刻,待安装结束后,可以通过以下命令检查是否安装成功:

django-admin --version

正常情况下会返回 Django 的当前版本号,例如 4.1.5

API接口文档-1


第四步:选择代码编辑器

写代码当然离不开一个趁手的编辑器。对于初学者而言,推荐以下几款流行的代码编辑器:

  • VS Code(Visual Studio Code):轻量级但功能强大,拥有丰富的插件支持。
  • PyCharm Community Edition:专为 Python 设计的 IDE(集成开发环境),特别适合新手。
  • Sublime Text:简洁易用,速度快。

你可以根据个人喜好选择一款,然后安装好对应的编辑器,这样就能愉快地编写 Django 代码了!


第五步:创建项目文件夹结构

现在我们正式开始 Django 之旅,先为我们的项目创建一个专属的文件夹。打开命令行工具(Windows 使用 CMD 或 PowerShell,Mac/Linux 使用终端),输入以下命令创建一个新的文件夹并进入它:

mkdir my_django_project
cd my_django_project

接下来,我们就可以在这个目录下创建我们的第一个 Django 项目啦!


核心概念:Django的关键概念解析

在正式动手实践之前,让我们先了解一些 Django 中的核心概念。这些概念听起来可能有些抽象,但我们用简单的例子来解释它们。


什么是框架?

框架是一个预先写好的“工具箱”,它提供了一套标准的方式来处理常见的开发任务。Django 就是这样一个框架,它让开发者能够专注于网站的特色功能,而不是花费时间重复造轮子。

举个通俗的例子:如果你想建一栋房子,直接从一块砖开始垒墙显然效率很低。框架就像是预制板+脚手架,让你快速完成基本结构,然后再添加自己的设计。


MVC 架构与 MTV 模式

MVC(Model-View-Controller)是软件工程中的一种经典架构模式,很多框架都遵循这种理念。而在 Django 中,它采用的是类似的 MTV 模式(Model-Template-View)

层级 作用 类比
Model(模型) 负责与数据库交互,存储数据 数据表(例如用户信息、商品详情)
Template(模板) 控制页面展示的内容样式 页面设计稿(HTML 文件)
View(视图) 处理请求,调用模型并传递数据给模板 逻辑处理中心(Python 函数或类)

换句话说,当你访问一个网页时,View 会告诉 Django 要从 Model 获取哪些数据,然后把数据传给 Template 生成完整的 HTML 页面发送给用户。


URL 配置

URL 是我们在浏览器地址栏输入的那一串字符,比如 http://example.com/about。每个 URL 在 Django 里都需要一个“路由规则”来告诉服务器应该调用哪个函数或页面来处理这个请求。

例如:

from django.urls import path
from . import views

urlpatterns = [
    path('about/', views.about_page),
]

这段配置意味着当用户访问 /about/ 地址时,会调用 views.py 文件中的 about_page() 函数来处理请求。


视图(Views)

视图是处理业务逻辑的地方。它接收用户请求(例如点击某个按钮或者打开特定页面),执行相应的处理逻辑(比如查询数据库、计算数值),然后将结果交给模板渲染成 HTML 页面返回给用户。

示例代码:

from django.http import HttpResponse

def hello_world(request):
    return HttpResponse("欢迎来到我的网站!")

模板(Templates)

模板决定了网页的外观。Django 提供了一个专门的语言来编写模板,允许你在 HTML 中插入变量和简单的逻辑。模板最终会被渲染成一个完整的网页发送给浏览器。

比如,下面是一个简单的模板文件(index.html):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    <h1>{{ welcome_message }}</h1>
</body>
</html>

其中 {{ welcome_message }} 是变量占位符,可以在视图中传入实际值。


模型(Models)

模型是用来描述数据库结构的部分,它定义了你的网站需要用到哪些数据以及它们之间的关系。例如,一个博客系统需要“文章”的数据,每篇文章有标题、作者、正文等内容。

示例模型代码如下:

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    published_date = models.DateTimeField(auto_now_add=True)

这里的 Article 类描述了一种数据结构,Django 会自动将这个类转换成数据库中的表格,并提供相关的增删改查接口。

数据库设计模型-2


ORM(对象关系映射)

ORM 是 Django 强大的特性之一。它允许我们通过 Python 对象来操作数据库,而不是直接书写 SQL 语句。这使得代码更加简洁,也能避免一些安全隐患(如 SQL 注入攻击)。

例如,我们可以通过以下方式新增一篇文章:

new_article = Article(title="Hello Django", content="这是我的第一篇文章")
new_article.save()

实战项目:跟着教程一步步完成一个简单网站

现在我们终于迎来了激动人心的实战环节!我们将一步步构建一个简单的 Django 网站——一个个人博客。它会有主页,能展示文章列表,并有一个简单的关于页面。让我们立即开始吧!


第一步:创建项目

还记得我们之前创建的 my_django_project 文件夹吗?现在我们就在这个文件夹内创建一个 Django 项目。

在终端(或命令行)中,执行以下命令:

django-admin startproject blog_project

这会在当前目录下创建一个名为 blog_project 的项目文件夹。

目录结构如下:

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

第二步:启动开发服务器

为了测试是否一切正常,我们可以启动 Django 内置的开发服务器。首先切换到 blog_project 目录:

cd blog_project

然后执行:

python manage.py runserver

你会看到类似这样的信息:

Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

这时候打开浏览器,访问网址:http://127.0.0.1:8000/,你应该能看到“Welcome to Django”页面!


第三步:创建第一个应用

Django 鼓励我们将功能模块化。每一个功能都可以作为一个独立的“应用”。这里我们要创建一个名为 blog_app 的博客应用。

继续在终端中输入以下命令:

python manage.py startapp blog_app

此时你会发现项目目录中多了一个 blog_app 文件夹,里面包含一些默认文件,比如 models.py(模型)、views.py(视图)等。

为了让 Django 认识这个新应用,需要在 blog_project/settings.py 文件中的 INSTALLED_APPS 列表里添加它:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog_app',  # 添加这一行
]

第四步:编写视图

现在我们要为网站添加第一个页面——主页。打开 blog_app/views.py 文件,输入以下代码:

from django.http import HttpResponse

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

接着,需要配置 URL,以便通过浏览器访问这个视图。为此,我们创建一个 urls.py 文件在 blog_app 目录下,添加以下内容:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home),  # 空路径代表首页
]

然后打开主项目的 blog_project/urls.py 文件,将新应用的 URL 配置包含进去:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog_app.urls')),  # 包含我们刚创建的 url 配置
]

保存后重启服务器(按 Ctrl+C 关闭再重新运行 runserver),访问 http://127.0.0.1:8000/,你会看到页面显示 “欢迎来到我的博客!”。


第五步:加入模板

接下来我们将主页改成一个真正的网页。首先创建一个 templates 文件夹来存放 HTML 文件。在 blog_app 文件夹中新建一个 templates 文件夹,然后在该文件夹中创建一个 home.html 文件,内容如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>我的博客主页</title>
</head>
<body>
    <h1>欢迎来到我的博客!</h1>
    <p>这是一个简单的博客网站。</p>
</body>
</html>

接着修改 views.py 中的 home 函数:

from django.shortcuts import render

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

刷新页面,你会看到 HTML 渲染的效果!


第六步:添加一个关于页面

让我们再加一个简单的“关于我”页面,以熟悉整个流程。

首先在 blog_app/templates 文件夹中创建一个新的 HTML 文件 about.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>关于我</title>
</head>
<body>
    <h1>关于我</h1>
    <p>我是这个博客的主人,很高兴见到你!</p>
</body>
</html>

然后在 views.py 中添加新的视图函数:

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

最后,更新 blog_app/urls.py 文件:

urlpatterns = [
    path('', views.home),
    path('about/', views.about),  # 新增的路径
]

现在访问 http://127.0.0.1:8000/about/,你会看到关于页面的内容!


第七步:美化页面(可选)

你可以尝试为 home.html 添加 CSS 样式,让它看起来更美观。例如:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>我的博客主页</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f9f9f9;
            color: #333;
            padding: 20px;
        }
        h1 {
            color: #007BFF;
        }
    </style>
</head>
<body>
    <h1>欢迎来到我的博客!</h1>
    <p>这是一个简单的博客网站。</p>
</body>
</html>

刷新页面,你会看到颜色和字体的变化。


恭喜你,完成了你的第一个 Django 网站!它虽然很简单,但已经涵盖了 Django 的核心知识:创建项目、添加应用、配置 URL、编写视图、使用模板。下一步,我们将解决一些新手容易遇到的问题。


常见问题:新手常问问题解答

在学习 Django 的过程中,新手常常会遇到各种疑问。这些问题看似小,但如果不清楚答案,很容易影响进度。以下是一些最常见的问题及解决方案:


1. 为什么我访问不了本地服务器?

这个问题通常是由于开发服务器没有正确启动导致的。

可能原因:

  • 输入了错误的命令,例如漏掉了 runserver
  • 其他程序占用端口 8000,导致冲突;

解决方案:

  • 检查是否输入正确的命令:python manage.py runserver
  • 如果出现端口被占用的错误,可以换用其他端口,例如:
    python manage.py runserver 8080
    
    这时候访问地址变为 http://127.0.0.1:8080/

2. 修改代码后网页没变化怎么办?

Django 的开发服务器会自动检测代码变动,但在某些情况下,你需要手动重启服务器。

解决办法:

  • Ctrl + C 终止当前服务器;
  • 再次运行 python manage.py runserver

3. 怎么查看报错信息?

Django 开发服务器提供了详细的错误页面。当你访问页面出现错误(如 500 错误)时,浏览器会显示具体的报错信息,包括出错的文件和行号。

此外,你也可以在 settings.py 文件中设置 DEBUG = True(默认已经是 True),这样可以看到更清晰的调试信息。


4. 模板文件找不到怎么办?

如果你收到类似 TemplateDoesNotExist 的错误,说明 Django 找不到你指定的模板文件。

检查点:

  • 模板文件是否放在正确的目录下,比如 templates/home.html
  • 是否遗漏了文件扩展名 .html
  • settings.py 中是否启用了模板加载器(默认是启用的);

5. URL 无法访问怎么办?

如果你访问某个 URL 时出现“Page not found (404)”错误,可能是 URL 配置不正确。

排查方法:

  • 检查 urls.py 中的路径是否拼写错误;
  • 检查是否忘记把应用的 URL 添加到主项目的 urlpatterns
  • 确保浏览器地址输入无误,例如 /about/ 结尾是否有斜杠;

6. 如何查看数据库中的数据?

Django 自带一个强大的命令行工具 shell,可以用于测试模型、查看数据。

运行以下命令进入 shell:

python manage.py shell

假设你定义了一个 Article 模型,可以通过以下方式查看所有文章:

from blog_app.models import Article
articles = Article.objects.all()
print(articles)

7. 怎么查看 Django 的文档?

Django 拥有详尽的官方文档,是解决问题的重要参考资料。访问 https://docs.djangoproject.com/ 即可找到最新版本的英文文档,中文翻译社区资源也逐渐丰富,可搜索“Django 中文文档”

评论 0

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