【100天精通python】Day50:python web编程_Django框架从安装到使用

目录

[1 安装Django Web框架](#1 安装Django Web框架)

[2 创建一个Django 项目](#2 创建一个Django 项目)

[3 数据模型](#3 数据模型)

[3.1 在应用程序的 models.py 文件中定义数据模](#3.1 在应用程序的 models.py 文件中定义数据模)

[3.2 创建模型的迁移文件并应用](#3.2 创建模型的迁移文件并应用)

[3.2.1 查询模型对象:](#3.2.1 查询模型对象:)

[3.2.2 创建新模型对象:](#3.2.2 创建新模型对象:)

[3.2.3 更新模型对象:](#3.2.3 更新模型对象:)

[3.2.4 删除模型对象:](#3.2.4 删除模型对象:)

[3.2.5 在模板中呈现模型对象:](#3.2.5 在模板中呈现模型对象:)

[4 管理后台](#4 管理后台)

[4.1 在应用程序的 admin.py 文件中注册模型](#4.1 在应用程序的 admin.py 文件中注册模型)

[4.2 创建一个管理员用户](#4.2 创建一个管理员用户)

[4.4 启动开发服务器并访问管理后台](#4.4 启动开发服务器并访问管理后台)

[4.5 使用创建的管理员帐户登录管理后台](#4.5 使用创建的管理员帐户登录管理后台)

[5 路由和视图](#5 路由和视图)

[5.1 创建应用程序的 urls.py 文件:](#5.1 创建应用程序的 urls.py 文件:)

[5.2 在应用程序的 urls.py 文件中定义 URL 映射:](#5.2 在应用程序的 urls.py 文件中定义 URL 映射:)

[5.3 配置项目级别的 URL 映射:](#5.3 配置项目级别的 URL 映射:)

[5.4 创建视图函数:](#5.4 创建视图函数:)

[5.5 测试路由:](#5.5 测试路由:)

[6 Django 模板](#6 Django 模板)

[6.1 创建模板文件](#6.1 创建模板文件)

[6.2 传递数据到模板](#6.2 传递数据到模板)

[6.3 使用模板标签](#6.3 使用模板标签)

[6.4 模板继承](#6.4 模板继承)

[6.5 模板过滤器](#6.5 模板过滤器)

1 安装Django Web框架

(1)打开终端或命令提示符。

(2)使用 pip 工具安装 Django。pip 是 Python 的包管理工具,通常在 Python 安装时已经包含。你可以使用以下命令来安装 Django

pip install Django

这将会下载并安装 Django 框架及其依赖项。

(3)验证安装

在终端中输入以下命令来验证是否成功安装了 Django:

django-admin --version

如果你看到 Django 的版本号,那么说明 Django 已经成功安装。

2 创建一个Django 项目

要创建一个 Django 项目,你可以按照以下步骤进行操作:

2.1 打开终端或命令提示符

2.2 使用以下命令创建一个新的 Django 项目

将 "myproject" 替换为你想要的项目名称:

django-admin startproject myproject

这将在当前目录下创建一个名为 "myproject" 的新项目目录,并在其中包含 Django 项目的基本结构。

2.3 进入项目目录

使用 cd 命令进入项目目录:

cd myproject

2.4 创建一个 Django 应用程序

在 Django 项目中创建应用程序是一个重要的步骤,因为它允许你将项目划分为多个模块,每个模块负责不同的功能。Django 项目可以包含一个或多个应用程序,应用程序是组织代码的单元。

以下是在 Django 项目中创建应用程序的步骤:使用以下命令创建一个新应用程序,将 "myapp" 替换为你的应用程序名称:

python manage.py startapp myapp

这将在项目目录中创建一个名为 "myapp" 的新应用程序目录。目录结构如下:

其中myproject 项目文件下,各文件功能:

应用myapp 文件夹下:

python 复制代码
在 myapp/models.py 文件中定义你的数据模型。这些模型将用于描述应用程序的数据结构。

在 myapp/views.py 文件中创建视图,这些视图定义了应用程序的业务逻辑。

在 myapp/urls.py 文件中配置 URL 映射,将 URL 与视图关联起来。

如果需要,可以在 myapp/admin.py 文件中配置 Django 管理界面,以便能够管理应用程序的数据。

myapp/tests.py 文件中编写测试用例,以确保应用程序的功能正常运行。

最后,将你的应用程序添加到项目的配置中。打开项目目录下的 settings.py 文件,并在 INSTALLED_APPS 列表中添加你的应用程序:

python 复制代码
# settings.py

INSTALLED_APPS = [
    # ...
    'myapp',
    # ...
]

如下

2.5 配置数据库

打开项目目录下的 settings.py 文件,配置数据库连接。默认情况下,Django 使用 SQLite 数据库,你可以根据需要更改为其他数据库后端。以下是一个典型的 settings.py 中数据库配置的示例:

python 复制代码
# settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',  # 数据库引擎
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),  # 数据库文件的绝对路径
    }
}

2.6 迁移数据库

运行以下命令来创建数据库表格:

python manage.py makemigrations
python manage.py migrate

如下:

2.7 运行开发服务器

使用以下命令启动 Django 开发服务器:

python 复制代码
python manage.py runserver

你将看到服务器启动后的输出信息,其中包括访问你的项目的 URL,通常为 http://127.0.0.1:8000/。打开这个 URL,你将看到 Django 的欢迎页面如下,表示你的项目已成功创建。


现在,你已经创建了一个 Django 项目,并且可以开始在该项目中开发你的应用程序。在项目中添加视图、模型、模板和 URL 映射,以构建你的 web 应用。可查阅Django 官方文档以深入了解如何使用 Django:https://docs.djangoproject.com/en/stable/https://docs.djangoproject.com/en/stable/

3 数据模型

在 Django 中,数据模型是用于定义应用程序的数据结构的关键部分。模型定义了数据库表格的结构,包括字段的类型、验证规则和关系。以下是创建和使用数据模型的基本步骤:

3.1 在应用程序的 models.py 文件中定义数据模型

每个数据模型都是一个 Python 类,通常继承自 django.db.models.Model 类。

python 复制代码
from django.db import models

class MyModel(models.Model):
    # 定义模型字段
    field1 = models.CharField(max_length=100)
    field2 = models.IntegerField()
    field3 = models.DateTimeField(auto_now_add=True)
    # ...其他字段...

    def __str__(self):
        return self.field1  # 可选,用于在管理界面中显示模型对象的字符串表示

在上述示例中,我们定义了一个名为 MyModel 的数据模型,它包含了三个字段:field1field2field3。你可以根据需要添加更多字段,并使用不同的字段类型(例如,字符型、整数型、日期时间型等)。

Django 数据模型中常见的字段类型

3.2 创建模型的迁移文件并应用

创建模型的迁移文件是为了确保数据库与 Django 中的数据模型保持同步和一致。迁移文件包含了数据库表格的创建、修改和删除操作,这些操作由 Django 在执行 makemigrations 命令时自动生成。

主要原因包括:

  1. 版本控制数据库结构: 迁移文件将数据库结构的演化历史记录下来,使得多个开发者或团队成员能够协作开发,并且确保每个数据库都处于相同的状态。这对于多环境部署(如开发、测试和生产环境)尤其重要。

  2. 保护数据完整性: 迁移文件确保在修改数据模型时不会破坏已存在的数据。Django 会生成 SQL 语句来执行数据库的更新操作,以便适应模型的变化。

  3. 便于升级和维护: 随着应用程序的演化,数据模型可能需要进行多次更改。迁移文件允许你追踪这些变化,使升级和维护变得更加容易和可控。

  4. 自动化数据库管理: Django 提供了一种自动化管理数据库结构的方式,开发者只需要定义数据模型,而不需要手动编写复杂的数据库表格创建和修改脚本。

总之,创建模型的迁移文件是一种良好的开发实践,可以确保数据库与应用程序的数据模型保持同步,提高了开发和维护的效率,同时确保了数据的完整性和版本控制。这是 Django 数据库迁移系统的核心功能之一。

运行以下命令:

python 复制代码
python manage.py makemigrations
python manage.py migrate

这将在数据库中创建与模型对应的数据表。

在你的应用程序中使用模型。你可以在视图中查询、创建、更新和删除模型对象,以及在模板中呈现它们。以下是一些常见的示例操作:

3.2.1 查询模型对象:

python 复制代码
my_objects = MyModel.objects.all()  # 获取所有 MyModel 对象
my_object = MyModel.objects.get(id=1)  # 获取特定的 MyModel 对象

3.2.2 创建新模型对象:

python 复制代码
new_object = MyModel(field1='Value 1', field2=42)
new_object.save()

3.2.3 更新模型对象:

python 复制代码
my_object = MyModel.objects.get(id=1)
my_object.field1 = 'New Value'
my_object.save()

3.2.4 删除模型对象:

python 复制代码
my_object = MyModel.objects.get(id=1)
my_object.delete()

3.2.5 在模板中呈现模型对象:

在 Django 模板中,你可以使用模板标签来呈现模型对象的数据。例如,要显示 field1field2 的值,可以使用以下代码:

html 复制代码
<p>{{ my_object.field1 }}</p>
<p>{{ my_object.field2 }}</p>

这些是创建和使用数据模型的基本步骤。你可以根据你的应用程序需求定义不同的数据模型,并在视图和模板中使用它们来操作和呈现数据。

4 管理后台

Django 提供了一个内置的管理后台,允许你轻松管理应用程序的数据。要使用 Django 管理后台,你需要进行以下配置和步骤:

4.1 在应用程序的 admin.py 文件中注册模型

打开应用程序的 admin.py 文件,并将要在管理后台中管理的模型注册到 admin.site.register 中。例如

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

admin.site.register(MyModel)

这将使 MyModel 模型在管理后台中可见。

4.2 创建一个管理员用户

在终端中运行以下命令以创建一个管理员用户:

python 复制代码
python manage.py createsuperuser

你需要提供用户名、电子邮件地址和密码。

4.4 启动开发服务器并访问管理后台

运行开发服务器:

python 复制代码
python manage.py runserver

访问 http://localhost:8000/admin/(或者你的开发服务器地址)以打开管理后台登录页面。 (或者你的开发服务器地址)以打开管理后台登录页面。

4.5 使用创建的管理员帐户登录管理后台

一旦登录,你将看到管理后台的控制面板,可以在其中管理注册的模型。你可以添加、编辑和删除模型对象,查看详细信息,并执行其他管理操作。

你看到这个错误是因为在你的 Django 配置文件中设置了 DEBUG = True。将其改为 False,Django 将显示一个标准的 404 页面。

刷新页面如下:

通过管理后台,你可以轻松管理你的应用程序的数据,而无需编写额外的代码。它提供了一个方便的界面,用于管理你的应用程序的后端数据。请注意,管理后台默认提供了一些功能,但你也可以自定义管理后台界面,以满足你的特定需求。

以上这些是使用 Django 管理后台的基本步骤。你可以在应用程序中注册多个模型,并在管理后台中管理它们。

5 路由和视图

在 Django 中,路由(也称为 URL 映射)用于定义 URL 与视图之间的关系,确定哪个视图函数将处理特定的 URL 请求。以下是在 Django 中配置路由的基本步骤:

5.1 创建应用程序的 urls.py 文件:

在你的 Django应用程序目录中,创建一个名为 urls.py 的 Python 文件。这个文件将包含应用程序的 URL 映射。

5.2 在应用程序的 urls.py 文件中定义 URL 映射:

使用 Django 的 path() 函数或 re_path() 函数(用于正则表达式匹配)来定义 URL 映射。每个 URL 映射都将一个 URL 模式与一个视图函数关联起来。以下是一个示例 urls.py 文件的基本结构:

python 复制代码
from django.urls import path
from . import views  # 导入应用程序的视图

urlpatterns = [
    path('url-pattern/', views.my_view, name='my-view-name'),
    # 更多 URL 映射...
]

在这个示例中,我们导入了应用程序的视图函数,然后使用 path() 函数将 URL 模式 /url-pattern/ 映射到 my_view 视图函数,并为这个 URL 映射指定了名称 my-view-name

5.3 配置项目级别的 URL 映射:

除了应用程序级别的 URL 映射外,还需要在项目的主 URL 配置文件中 定义项目级别的 URL 映射。通常,这是在项目的 urls.py 文件中完成的,其中包括应用程序的 URL 映射。例如:

python 复制代码
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),  # 包括 Django 管理后台的 URL 映射
    path('myapp/', include('myapp.urls')),  # 包括应用程序的 URL 映射
    # 更多项目级别的 URL 映射...
]

在这个示例中,我们使用 include() 函数将应用程序的 URL 映射包含到项目的主 URL 映射中,并使用 /myapp/ 作为应用程序的命名空间。

5.4 创建视图函数:

在 Django 中,视图(Views)是处理 web 请求并生成 web 响应的 Python 函数或类。视图函数接收 HTTP 请求,并根据请求执行相应的逻辑,然后返回 HTTP 响应,通常是一个 HTML 页面。

应用程序的视图文件 中(通常是 views.py 文件),编写视图函数来处理 URL 映射指向的请求。视图函数接收请求并返回响应。

python 复制代码
from django.http import HttpResponse

def my_view(request):
    return HttpResponse("Hello, World!")

这是一个简单的示例,该视图函数返回一个包含 "Hello, World!" 文本的 HTTP 响应。

5.5 测试路由:

启动 Django 开发服务器后,你可以在浏览器中访问配置的 URL 映射,然后查看视图函数的响应。

以上是在 Django 中配置路由的基本步骤。你可以根据你的应用程序需求添加更多的 URL 映射和视图函数,以构建你的 web 应用。路由是将 URL 与视图和功能相关联的重要工具。

6 Django 模板

Django 模板是用于生成动态 HTML 内容的强大工具,它允许你将数据从视图传递到模板,然后在模板中使用模板标签和模板语法来呈现数据。以下是关于 Django 模板的基本概念和用法:

6.1 创建模板文件

在 Django 项目的应用程序目录中,通常有一个名为 templates 的文件夹,用于存储模板文件。在这个文件夹中,你可以创建 HTML 文件,这些文件将用于呈现你的页面。例如,你可以创建一个 my_template.html 文件。

6.2 传递数据到模板

在视图函数中,你可以使用上下文(Context)将数据传递给模板。通常,你会将数据包装在一个字典中,然后将字典传递给模板。示例:

python 复制代码
from django.shortcuts import render

def my_view(request):
    my_data = {'name': 'John', 'age': 30}
    return render(request, 'my_template.html', {'data': my_data})

在这个示例中,my_data 字典中的数据被传递给了名为 'my_template.html' 的模板,并将其存储在 data 变量中。

6.3 使用模板标签

Django 模板引擎提供了一些内置的模板标签,用于在模板中插入动态内容、循环和条件语句等。以下是一些示例:例如,在模板中可以使用以下代码显示传递的数据

  • 使用 {``{ variable }} 插入变量的值。
  • 使用 {% for item in list %}...{% endfor %} 进行循环。
  • 使用 {% if condition %}...{% endif %} 进行条件判断。
python 复制代码
<p>Name: {{ data.name }}</p>
<p>Age: {{ data.age }}</p>

6.4 模板继承

Django 模板支持模板继承,这允许你创建一个基本模板(例如,页面的结构和布局),然后在其他模板中扩展它。这样,你可以在每个页面中重用相同的结构。要使用模板继承,你可以在模板中使用 {% extends "base_template.html" %}{% block content %}...{% endblock %} 标签。

例如,你可以创建一个基本模板 base_template.html,然后在其他模板中扩展它:

python 复制代码
<!-- base_template.html -->
<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
    <div id="content">
        {% block content %}{% endblock %}
    </div>
</body>
</html>
python 复制代码
<!-- other_template.html -->
{% extends "base_template.html" %}

{% block title %}Page Title{% endblock %}

{% block content %}
<p>This is the content of the page.</p>
{% endblock %}

6.5 模板过滤器

Django 模板还支持过滤器,这些过滤器用于对模板中的变量进行处理。过滤器通常用于格式化日期、字符串、数字等。例如,{``{ my_date|date:"Y-m-d" }} 将格式化日期。这只是关于 Django 模板的基本概念,Django 提供了丰富的模板语法和功能,用于构建复杂的动态页面。

总之,Django 是一个完善的 web 框架,适用于各种规模的 web 开发项目,从小型网站到大型企业应用程序。它提供了丰富的功能和工具,让开发人员能够快速构建高质量的 web 应用程序。如果你是 Python 开发人员,并且想要构建功能强大的 web 应用程序,Django 绝对值得考虑。

相关推荐
阿斯卡码1 小时前
jupyter添加、删除、查看内核
ide·python·jupyter
SRY122404192 小时前
javaSE面试题
java·开发语言·面试
无尽的大道3 小时前
Java 泛型详解:参数化类型的强大之处
java·开发语言
ZIM学编程3 小时前
Java基础Day-Sixteen
java·开发语言·windows
放逐者-保持本心,方可放逐3 小时前
react 组件应用
开发语言·前端·javascript·react.js·前端框架
埃菲尔铁塔_CV算法3 小时前
图像算法之 OCR 识别算法:原理与应用场景
图像处理·python·计算机视觉
封步宇AIGC4 小时前
量化交易系统开发-实时行情自动化交易-3.4.2.Okex行情交易数据
人工智能·python·机器学习·数据挖掘
封步宇AIGC4 小时前
量化交易系统开发-实时行情自动化交易-2.技术栈
人工智能·python·机器学习·数据挖掘
一丝晨光4 小时前
编译器、IDE对C/C++新标准的支持
c语言·开发语言·c++·ide·msvc·visual studio·gcc
阮少年、4 小时前
java后台生成模拟聊天截图并返回给前端
java·开发语言·前端