【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 绝对值得考虑。

相关推荐
Swift社区3 小时前
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
开发语言·ios·swift
没头脑的ht3 小时前
Swift内存访问冲突
开发语言·ios·swift
没头脑的ht3 小时前
Swift闭包的本质
开发语言·ios·swift
wjs20243 小时前
Swift 数组
开发语言
stm 学习ing4 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
湫ccc5 小时前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe6 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin6 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python