Django 查询数据库并返回页面的例子

下面是 Django 查询数据库并返回页面的例子的完整攻略:

1. 创建一个 Django 项目

首先需要在本地安装好 Django,并创建一个 Django 项目。打开终端,输入以下命令:

django-admin startproject myproject

这里的 myproject 可以改成任何你想要的项目名。

2. 创建一个 Django 应用

在生成的项目中,我们需要创建一个应用。在终端中输入以下命令:

cd myproject

python manage.py startapp myapp

这里的 myapp 也可以改成任何你想要的应用名。

3. 配置数据库

打开 myproject/settings.py 文件,找到 DATABASES 配置,根据自己的数据库信息进行配置,示例代码如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test_db',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

这里假设使用的是 MySQL 数据库,数据库名称为 test_db,用户名为 root,密码为 123456,连接地址为本机的 127.0.0.1,端口号为 3306

4. 定义模型

myapp/models.py 文件中定义模型,用于表示我们要查询的数据。这里以一个简单的 Student 数据库为例,模型代码如下:

from django.db import models

class Student(models.Model):
    name = models.CharField(max_length=20)
    age = models.IntegerField()
    gender = models.CharField(max_length=10)

这里定义了一个 Student 模型,包含了 name、age 和 gender 三个字段。

5. 执行数据迁移

在终端中输入以下命令,执行数据迁移:

python manage.py makemigrations

python manage.py migrate

6. 添加数据

在终端中打开 Django shell,添加一些数据:

python manage.py shell

>>> from myapp.models import Student

>>> student1 = Student(name='Tom', age=18, gender='male')
>>> student1.save()

>>> student2 = Student(name='Mary', age=20, gender='female')
>>> student2.save()

7. 编写视图函数

myapp/views.py 文件中编写视图函数,用于查询数据库并返回数据。以下是两个简单的示例:

from django.shortcuts import render
from myapp.models import Student

# 示例1:返回全部数据
def all_students(request):
    students = Student.objects.all()
    return render(request, 'student_list.html', {'students': students})

# 示例2:返回年龄小于20岁的学生
def young_students(request):
    students = Student.objects.filter(age__lt=20)
    return render(request, 'student_list.html', {'students': students})

这里编写了两个视图函数,一个返回全部数据,一个返回年龄小于20岁的学生。

8. 编写模板

myapp/templates 目录下创建 student_list.html 文件,用于显示返回的数据。以下是示例代码:

<!DOCTYPE html>
<html>
<head>
    <title>Student List</title>
</head>
<body>
    <h1>Student List</h1>
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Age</th>
                <th>Gender</th>
            </tr>
        </thead>
        <tbody>
            {% for student in students %}
            <tr>
                <td>{{ student.name }}</td>
                <td>{{ student.age }}</td>
                <td>{{ student.gender }}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>
</body>
</html>

这里使用了 Django 的模板语言来动态生成 HTML 标记,将返回的数据以表格的形式展示出来。

9. 配置 URL

myapp/urls.py 文件中配置 URL,将视图函数和 URL 对应起来。以下是示例代码:

from django.urls import path
from myapp.views import all_students, young_students

urlpatterns = [
    path('all/', all_students),
    path('young/', young_students),
]

这里分别定义了两个 URL,分别对应视图函数 all_studentsyoung_students

10. 运行 Django 项目

最后,在终端中输入以下命令,启动 Django 项目:

python manage.py runserver

然后在浏览器中输入对应的 URL (示例1:http://localhost:8000/all/,示例2:http://localhost:8000/young/),即可查看返回的数据页面。

以上就是 Django 查询数据库并返回页面的完整攻略,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django 查询数据库并返回页面的例子 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • OpenCV实现Sobel边缘检测的示例

    下面是关于“OpenCV实现Sobel边缘检测的示例”的完整攻略。 1. 背景介绍 Sobel算子是图像处理中一种简单有效的边缘检测算法,可用于快速检测图像中的边缘。OpenCV是一个广泛使用的计算机视觉库,可用于各种视觉任务,包括图像处理和图像分析。在这个示例中,我们将学习如何使用OpenCV实现Sobel算子检测图像边缘的方法。 2. 实现步骤 2.1 …

    人工智能概论 2023年5月25日
    00
  • Java OpenCV学习之Mat的基本操作详解

    Java OpenCV学习之Mat的基本操作详解 1.概述 OpenCV是一个广泛应用于计算机视觉领域的开源库。从其名称可以看出,它最初是为C ++编写的,但随着时间的推移,也有了Java等其他语言版本。这篇文章是关于OpenCV的Java版本的Mat类的基本操作和用法优化的攻略。 2.Mat的基本操作 Mat是OpenCV中最常用的类,是处理图像和矩阵的数…

    人工智能概论 2023年5月24日
    00
  • JavaScript DOM 学习第五章 表单简介

    下面是本人对JavaScript DOM学习第五章 表单简介的完整攻略。本章主要讲解表单相关的知识点,包括表单的基本组成部分以及如何使用JavaScript对表单进行操作。 表单的基本组成部分 表单是由一组表单元素组成,包括文本输入框、密码输入框、单选框、复选框、下拉框、文件上传等。每个表单元素都有其独有的属性和方法,我们可以使用这些属性和方法对表单元素进行…

    人工智能概论 2023年5月25日
    00
  • 使用nginx+lua实现信息访问量统计

    下面是使用nginx+lua实现信息访问量统计的完整攻略。 1. 确认环境 首先需要确认环境中是否安装了nginx和lua。可以通过以下命令来检查: nginx -V lua -v 如果命令提示未找到,则需要进行安装。 2. 安装nginx的lua模块 在确认安装了nginx之后,需要安装nginx的lua模块。可以通过源码编译的方式来安装,也可以通过包管理…

    人工智能概览 2023年5月25日
    00
  • 用Go语言标准库实现Web服务之创建路由

    创建路由的背景和作用在Web开发中,经常需要针对不同的URL请求,返回不同的响应。而实现这个需求的方式就是通过创建路由。路由本质上是一个映射表,将客户端传入的URL映射到对应的函数上,以此实现不同URL请求的处理逻辑。Go语言标准库中内置的net/http模块,提供了完整的HTTP服务器和客户端功能。通过net/http包中提供的多项函数和接口,我们可以很方…

    人工智能概论 2023年5月25日
    00
  • C语言 动态分配数组案例详解

    C语言动态分配数组案例详解 什么是动态分配数组 在C语言中,数组是一种非常基础的数据类型,它可以容纳一组相同类型的数据,而且数组的长度是静态的,也就是在声明时就要确定数组的长度。比如: int arr[10]; //声明了一个长度为10的整型数组 但是,在很多情况下,我们并不知道数组要存储多少个元素,或者存储元素数量会发生变化。此时,就需要采用动态分配数组的…

    人工智能概览 2023年5月25日
    00
  • 如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑

    针对该问题,我为您提供以下完整攻略: 准备工作 在源电脑上使用 Anaconda 安装好 mmdetection 环境,并且能够正常运行。 下载好对应的 mmdetection 环境的离线包,在 https://github.com/open-mmlab/mmdetection/releases 上下载对应版本的源码压缩包和编译好的 .whl 包(whl 的…

    人工智能概览 2023年5月25日
    00
  • 分享20个 Unix/Linux 命令技巧

    没问题。本文将为大家详细讲解“分享20个 Unix/Linux 命令技巧”的完整攻略。 1. 简介 在 Unix/Linux 系统中,命令行是非常强大且高效的工具,掌握一些常用的命令技巧将会让我们的工作事半功倍。本文将向大家介绍20个常用的 Unix/Linux 命令技巧,希望能帮助大家更好地掌握命令行的技巧。 2. Unix/Linux 命令技巧 2.1.…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部