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

码上见山
2025-06-27 14:54
阅读 423

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

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

在当今的互联网世界中,网站无处不在。无论你是想开发一个博客系统、电商平台,还是企业内部的管理系统,你都需要一个强大而高效的工具来实现这些功能。Django就是这样一个工具,它是用Python语言编写的一个高级Web框架,帮助开发者快速构建安全、可维护且功能强大的网站。

Django的设计理念是“以开发者为中心”,这意味着它提供了许多开箱即用的功能,比如数据库管理、用户认证、后台管理等等。通过使用Django,你可以将更多精力放在业务逻辑上,而不是重复的基础工作。

本教程面向完全零基础的新手,我们会一步步带你了解Django的核心概念,并最终完成一个简单但完整的网页项目。准备好开始了吗?我们先从最基础的环境搭建讲起!


环境准备:配置你的Django开发环境

环境准备:配置你的Django开发环境

1. 安装Python

Django是基于Python的框架,因此第一步就是确保你的电脑上已经安装了Python。我们推荐使用Python 3.8+版本

如何检查是否已安装Python?

  • Windows:打开命令提示符(cmd),输入:
    python --version
    
  • Mac/Linux:打开终端,输入:
    python3 --version
    

如果看到类似 Python 3.10.x 的输出,说明你已安装;否则需要手动安装。

下载和安装Python:

前往 https://www.python.org/downloads/ 下载对应系统的Python安装包,运行后记得勾选 Add to PATH(Windows)或者自动添加路径(Mac/Linux)。


2. 创建虚拟环境(Virtual Environment)

为了防止不同项目的依赖冲突,我们建议为每个项目创建独立的虚拟环境

在任意位置新建一个文件夹,比如 my_first_django_project,然后进入该目录,在命令行中执行以下命令创建并激活虚拟环境:

Windows系统:

python -m venv env
env\Scripts\activate

Mac/Linux系统:

python3 -m venv env
source env/bin/activate

激活后你应该会在命令行前看到 (env) 提示,表示当前处于虚拟环境中。


3. 安装Django

安装Django非常简单,只需一条pip命令即可完成:

pip install django

安装完成后,可以用下面这条命令验证是否安装成功:

django-admin --version

如果能看到版本号(例如 4.2.5),说明Django已成功安装!


核心概念:理解Django的关键组成部分

学习任何编程技术,都必须理解它的基本结构和核心组件。下面我们将介绍几个Django中最关键的概念,并尽量用简单的语言解释清楚。


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

  • 项目(Project):代表整个网站。它是一个容器,里面可以包含多个“应用”。
  • 应用(App):代表网站中的一个具体功能模块,比如博客功能、用户登录系统、商品展示等。

通常来说:

  • 一个项目 = 多个应用 + 全局设置 + 路由配置

举个例子: 如果你正在做一个电商平台,你可能会创建如下几个应用:

  • 商品列表 (products)
  • 用户注册登录 (users)
  • 购物车和订单 (cart)

2. URL路由(URL Routing)

URL路由就像一个地址簿,告诉浏览器访问某个网址时应该跳转到哪个页面或执行哪个函数。

举个简单的例子:

http://127.0.0.1:8000/blog/

这表示当用户访问 /blog/ 这个路径时,Django应该返回博客首页的内容。


3. 视图(View)

视图负责处理请求,生成响应内容。我们可以把它想象成网页的“大脑”。

例如,当你点击“联系我”页面时,Django会调用一个特定的视图函数,这个函数可能会连接数据库获取信息,或者直接返回一段HTML内容。


4. 模型(Model)

模型是用来描述数据的结构的类,通俗地讲,它是数据库表格的映射。

例如,你可以定义一个叫 Article 的模型类,表示一篇博客文章,它有标题、正文、发布日期等字段。


5. 模板(Template)

模板是用于生成HTML页面的文件。它可以动态渲染内容,比如显示文章标题、用户评论等等。

Django提供了一套自己的模板引擎,语法简单易懂。我们后面实战时会详细讲解。


6. 数据库(Database)

Django默认自带SQLite数据库,适合初学者使用。你也可以配置MySQL、PostgreSQL等专业数据库。

在项目开发初期,使用SQLite是非常合适的,不需要额外安装其他软件。


实战项目:搭建一个简易的博客网站

接下来我们将一步步创建一个简易的博客网站,实现如下功能:

✅ 显示首页
✅ 展示单篇博文
✅ 使用后台管理界面发布文章

让我们现在开始!


步骤一:创建Django项目

进入你之前创建的文件夹(如 my_first_django_project),在这个目录下执行命令创建项目:

django-admin startproject mysite

这时会生成一个名为 mysite 的文件夹,里面有以下几个重要文件:

  • manage.py:这是项目管理脚本,用来执行各种Django命令。
  • mysite/settings.py:项目的全局配置文件。
  • mysite/urls.py:URL路由配置。
  • mysite/wsgi.py:用于部署网站的接口文件。

进入项目根目录运行服务器测试一下:

cd mysite
python manage.py runserver

浏览器访问 http://127.0.0.1:8000/,如果看到Django欢迎页,说明一切正常 ✅


步骤二:创建博客应用

我们来创建一个专门用于博客功能的应用。

回到 mysite 文件夹下(即包含 manage.py 的那一层),执行:

python manage.py startapp blog

这时会出现一个 blog 文件夹,里面包含了应用的基本结构:

blog/
├── migrations/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py

步骤三:注册应用

为了让Django知道我们要启用这个应用,需要在项目的 settings.py 文件中注册它。

打开 mysite/settings.py,找到 INSTALLED_APPS 列表,在末尾加上 'blog.apps.BlogConfig'

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

保存后退出。


步骤四:定义模型 Model

我们来创建一个 Article 模型,用于表示每篇博客文章。

编辑 blog/models.py 文件,写入以下内容:

from django.db import models
from django.utils import timezone

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    published_date = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.title

这段代码定义了一个模型,它有三个字段:

  • title: 标题,最长200字符
  • content: 正文内容
  • published_date: 发布时间,默认为当前时间

保存后,我们需要告诉Django更新数据库结构:

python manage.py makemigrations blog
python manage.py migrate

这两条命令的作用是:先根据模型生成迁移脚本,然后应用到数据库中。


步骤五:创建管理员界面

Django有一个强大的内置后台管理页面,我们可以用它来添加、修改博客文章。

首先创建一个管理员账户:

python manage.py createsuperuser

输入用户名、邮箱和密码。

接下来注册 Article 模型到后台管理界面:

打开 blog/admin.py 文件,修改为如下内容:

from django.contrib import admin
from .models import Article

admin.site.register(Article)

启动服务器:

python manage.py runserver

打开浏览器访问 http://127.0.0.1:8000/admin/,用刚才设置的账号登录,你会看到文章管理界面,点击 ADD ARTICLE 可以添加新文章。


步骤六:创建视图 View 和 URL路由

我们要让访客可以浏览博客首页和单篇文章。

1. 编写视图函数

打开 blog/views.py,添加两个视图函数:

from django.shortcuts import render, get_object_or_404
from .models import Article

def home(request):
    articles = Article.objects.all().order_by('-published_date')
    return render(request, 'blog/home.html', {'articles': articles})

def article_detail(request, pk):
    article = get_object_or_404(Article, pk=pk)
    return render(request, 'blog/article_detail.html', {'article': article})

上面的代码做了什么?

  • home() 函数:获取所有文章,并按照发布时间降序排列,传给模板。
  • article_detail() 函数:根据主键 pk 获取某一篇文章,传给详情页模板。

2. 创建URL路由

我们先在 blog 应用中创建 urls.py 文件(默认不自动生成):

blog/ 目录下新建文件 urls.py,写入以下内容:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('article/<int:pk>/', views.article_detail, name='article-detail'),
]

接着,我们需要把博客应用的URL嵌入到项目的总路由中。

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

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),  # 新增这一行
]

这样就实现了路由的嵌套关系。


步骤七:编写模板 Template

Django模板存放在各个应用下的 templates/ 文件夹中。我们先在 blog 文件夹中创建模板目录结构。

目录结构如下:

blog/
└── templates/
    └── blog/
        ├── home.html
        └── article_detail.html
home.html 内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的博客</title>
</head>
<body>
    <h1>欢迎来到我的博客!</h1>
    {% for article in articles %}
        <h2><a href="{% url 'article-detail' pk=article.pk %}">{{ article.title }}</a></h2>
        <p>{{ article.published_date }}</p>
    {% endfor %}
</body>
</html>
article_detail.html 内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ article.title }}</title>
</head>
<body>
    <h1>{{ article.title }}</h1>
    <p>{{ article.published_date }}</p>
    <div>
        {{ article.content }}
    </div>
</body>
</html>

步骤八:再次启动服务并查看效果

保存所有文件后,重启服务:

python manage.py runserver

访问 http://127.0.0.1:8000/,你应该可以看到首页列出你添加的文章。点击标题可以进入详情页,查看完整内容 ✅


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

Q1:安装Django失败怎么办?

可能原因:

  • 网络问题导致下载失败
  • pip版本太旧

解决办法: 升级pip:

python -m pip install --upgrade pip

使用镜像源加速:

pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple

Q2:访问不了本地服务器?

检查是否启动服务:

python manage.py runserver

确认控制台没有报错,然后尝试访问:

http://localhost:8000/

或者关闭防火墙重试。


Q3:视图函数无法显示页面?

请检查:

  • 模板路径是否正确
  • 模板命名是否一致(区分大小写)
  • 是否在URL中正确定义路由
  • 是否遗漏 render() 函数

Q4:数据库操作错误?

运行如下命令重置迁移:

python manage.py makemigrations
python manage.py migrate

或者删除 db.sqlite3 文件重新运行迁移。


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

恭喜你完成了第一个Django项目 🎉!你现在掌握的知识已经足以让你开始开发简单的网站了。不过别急着止步于此,下面是进一步学习的建议:

1. 学习表单(Form)和提交功能

学会如何让用户通过网页提交数据,比如评论、注册、登录等。

2. 学习模板继承(Template Inheritance)

避免重复编写相同的HTML结构,提升开发效率。

3. 学习静态资源管理和CSS引入

美化你的网站页面,让它看起来更专业。

4. 学习使用真实数据库(如PostgreSQL/MySQL)

为将来上线做准备。

5. 部署项目上线

学习使用 gunicorn, nginx 或部署平台如 PythonAnywhere、Heroku。


结语:勇敢迈出第一步

作为一位刚起步的开发者,你可能会感到有些复杂和迷茫。但记住:每一个优秀的程序员都是从一个“Hello World”开始的。Django虽然功能强大,但它设计初衷就是为了简化开发流程,只要你保持耐心、持续练习,就能很快上手。

继续加油吧!也许下一个伟大的网站,就是你做的 😊


如果你觉得这篇文章对你有帮助,欢迎关注我后续的Django进阶教程系列!

评论 0

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