Django 使用教程

Django 使用教程

Django 是一个高级的 Python Web 框架,采用了 MTV(Model-Template-View)设计模式,旨在帮助开发者快速构建高效、可维护的 Web 应用。它有着非常丰富的功能,包括 ORM、用户认证、表单处理、管理后台等,是构建复杂 Web 应用的理想选择。

本文将介绍如何从零开始使用 Django,创建一个简单的 Web 应用,包含环境配置、创建项目和应用、定义模型、视图和模板、路由配置等内容。


一、环境准备

1.1 安装 Python 和 Django

Django 是基于 Python 的,因此你需要先安装 Python 环境。确保安装了 Python 3.x 版本。

  1. 安装 Python (如果还没有安装的话):

    你可以通过 Python 官网下载并安装最新版本的 Python。

  2. 创建虚拟环境 (推荐):

    虚拟环境能够帮助你管理不同项目的依赖,避免冲突。

    在终端中运行以下命令创建虚拟环境:

    bash 复制代码
    python -m venv myenv

    激活虚拟环境:

    • Windows:

      bash 复制代码
      myenv\Scripts\activate
    • macOS/Linux:

      bash 复制代码
      source myenv/bin/activate
  3. 安装 Django

    在虚拟环境中,使用 pip 安装 Django:

    bash 复制代码
    pip install django

1.2 检查安装是否成功

安装完成后,运行以下命令检查 Django 版本,确保安装成功:

bash 复制代码
django-admin --version

二、创建 Django 项目

2.1 创建项目

使用 Django 提供的命令行工具 django-admin 创建一个新的项目。在终端中运行以下命令:

bash 复制代码
django-admin startproject myproject

这会在当前目录下创建一个名为 myproject 的文件夹,其中包含了一些默认文件和目录结构。

项目目录结构:

复制代码
myproject/
    manage.py  # 用于管理项目的命令行工具
    myproject/  # 项目设置文件夹
        __init__.py
        settings.py  # 项目的配置文件
        urls.py  # 路由配置
        wsgi.py  # 用于部署的 WSGI 配置

2.2 启动开发服务器

进入 myproject 文件夹,并运行开发服务器:

bash 复制代码
cd myproject
python manage.py runserver

服务器启动后,打开浏览器访问 http://127.0.0.1:8000/,如果看到 Django 的欢迎页面,说明项目创建成功。


三、创建 Django 应用

在 Django 中,应用是构建 Web 项目的基本单元。一个 Django 项目可以包含多个应用,每个应用负责处理项目中的一个功能模块。

3.1 创建应用

在项目目录下运行以下命令来创建一个应用,例如创建一个名为 blog 的应用:

bash 复制代码
python manage.py startapp blog

这会在项目中创建一个 blog 文件夹,目录结构如下:

复制代码
blog/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py

3.2 注册应用

打开 myproject/settings.py 文件,找到 INSTALLED_APPS 列表,添加刚刚创建的 blog 应用:

python 复制代码
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',  # 添加 blog 应用
]

四、定义模型(Model)

在 Django 中,模型用于定义数据结构,映射数据库表。Django 使用 ORM(对象关系映射)技术,将模型与数据库中的表进行关联。

4.1 创建模型

打开 blog/models.py 文件,定义一个简单的模型,比如 Post,表示博客文章:

python 复制代码
from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title

模型 Post 包括三个字段:title(标题)、content(内容)和 created_at(创建时间)。其中 CharFieldTextField 是常用的字段类型,DateTimeField 用于存储时间。

4.2 创建数据库表

模型定义完成后,需要生成数据库表。在终端中运行以下命令:

bash 复制代码
python manage.py makemigrations
python manage.py migrate
  • makemigrations 会生成数据库迁移文件。
  • migrate 会根据迁移文件创建数据库表。

五、创建视图(Views)

视图是用户请求和响应之间的桥梁,它处理请求并返回响应。在 Django 中,视图通常有两种类型:函数视图和类视图。

5.1 创建函数视图

打开 blog/views.py 文件,创建一个简单的视图函数:

python 复制代码
from django.http import HttpResponse
from .models import Post

def index(request):
    posts = Post.objects.all()  # 获取所有博客文章
    response = '<h1>Blog Posts</h1>'
    for post in posts:
        response += f'<h2>{post.title}</h2><p>{post.content}</p>'
    return HttpResponse(response)

该视图函数获取所有博客文章,并将其标题和内容显示在页面上。

5.2 配置路由

打开 myproject/urls.py 文件,配置 URL 路由,将请求与视图函数关联起来:

python 复制代码
from django.contrib import admin
from django.urls import path
from blog import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name='index'),  # 将根 URL 映射到 index 视图
]

六、创建模板(Template)

模板用于呈现 HTML 页面,可以将动态内容与静态内容结合。在 Django 中,模板是存放在 templates 目录下的 HTML 文件。

6.1 创建模板

blog 应用下创建一个 templates 文件夹,并在其中创建 index.html 文件:

复制代码
blog/
    templates/
        index.html

index.html 中,编写 HTML 和 Django 模板语言来显示博客文章列表:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Blog</title>
</head>
<body>
    <h1>Blog Posts</h1>
    {% for post in posts %}
        <h2>{{ post.title }}</h2>
        <p>{{ post.content }}</p>
    {% endfor %}
</body>
</html>

6.2 修改视图函数使用模板

修改 views.py 中的 index 视图函数,使用 Django 的 render 函数渲染模板:

python 复制代码
from django.shortcuts import render
from .models import Post

def index(request):
    posts = Post.objects.all()
    return render(request, 'index.html', {'posts': posts})

七、后台管理

Django 提供了一个强大的后台管理界面,可以帮助我们管理数据。在 admin.py 中,我们需要将模型注册到 Django 管理后台。

7.1 注册模型

打开 blog/admin.py 文件,注册 Post 模型:

python 复制代码
from django.contrib import admin
from .models import Post

admin.site.register(Post)

7.2 启用后台管理

创建超级用户以便登录后台管理界面:

bash 复制代码
python manage.py createsuperuser

按照提示输入用户名、电子邮件和密码。

启动开发服务器后,在浏览器访问 http://127.0.0.1:8000/admin/,使用超级用户账号登录,您可以在后台管理界面查看和管理 Post 模型的数据。


八、总结

本文介绍了 Django 的基本使用方法,包括如何创建项目和应用、定义模型、视图和模板、配置路由、以及启用后台管理界面。通过这些步骤,你可以快速构建一个简单的 Django Web 应用。

在实际开发中,你可能会遇到更多的功能需求,例如表单处理、用户认证、分页等,Django 提供了丰富的功能支持,能够帮助你应对各种需求。你可以通过官方文档深入学习和掌握 Django:Django 官方文档

相关推荐
XU磊26042 分钟前
使用 PyTorch 构建 UNet 图像去噪模型:从数据加载到模型训练的完整流程
人工智能·pytorch·python
renne42 分钟前
Open WebUI+MCP搭建个人AI智能体
python·openai
JavaEdge在掘金44 分钟前
LangChain4j + MCP:让你的 AI 轻松调用外部工具(内附GitHub-MCP实战)
python
SsummerC1 小时前
【leetcode100】一和零
开发语言·python·leetcode·动态规划
Kusunoki_D1 小时前
在 Anaconda 上安装多版本 Python 解释器并在 PyCharm 中配置
ide·python·pycharm
傻啦嘿哟2 小时前
Python与图像处理:从基础操作到智能应用的全面解析
开发语言·图像处理·python
机器学习Zero2 小时前
自然语言处理(9)—— 共现词矩阵及Python实现
人工智能·python·自然语言处理·nlp
爱吃泡芙的小白白3 小时前
爬虫学习——Scrapy
爬虫·python·scrapy·学习记录
Luck_ff08103 小时前
【Python爬虫详解】第二篇:HTML结构的基本分析
爬虫·python·html