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

news2024/11/20 7:35:13

目录

1 安装Django Web框架

2 创建一个Django 项目

3 数据模型

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

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

3.2.1 查询模型对象:

3.2.2 创建新模型对象:

3.2.3 更新模型对象:

3.2.4 删除模型对象:

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

4 管理后台

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

4.2 创建一个管理员用户

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

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

5  路由和视图

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

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

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

5.4 创建视图函数:

5.5 测试路由:

6 Django 模板

6.1 创建模板文件

6.2 传递数据到模板

6.3  使用模板标签

 6.4 模板继承

 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 文件夹下:

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

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

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

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

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

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

# settings.py

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

如下 

 2.5 配置数据库

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

# 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 manage.py runserver

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


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

3 数据模型

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

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

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

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 manage.py makemigrations
python manage.py migrate

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

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

3.2.1 查询模型对象:

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

3.2.2 创建新模型对象:

new_object = MyModel(field1='Value 1', field2=42)
new_object.save()

3.2.3 更新模型对象:

my_object = MyModel.objects.get(id=1)
my_object.field1 = 'New Value'
my_object.save()

3.2.4 删除模型对象:

my_object = MyModel.objects.get(id=1)
my_object.delete()

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

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

<p>{{ my_object.field1 }}</p>
<p>{{ my_object.field2 }}</p>

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

4 管理后台

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

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

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

from django.contrib import admin
from .models import MyModel

admin.site.register(MyModel)

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

4.2 创建一个管理员用户

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

python manage.py createsuperuser

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

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

运行开发服务器:

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 文件的基本结构:

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 映射。例如:

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 映射指向的请求。视图函数接收请求并返回响应。

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)将数据传递给模板。通常,你会将数据包装在一个字典中,然后将字典传递给模板。示例:

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 %} 进行条件判断。
<p>Name: {{ data.name }}</p>
<p>Age: {{ data.age }}</p>

 6.4 模板继承

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/961419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker构建Springboot项目,并发布测试

把SpringBoot项目打包成Docker镜像有两种方案&#xff1a; 全自动化&#xff1a;先打好docker镜像仓库&#xff0c;然后在项目的maven配置中配置好仓库的地址&#xff0c;在项目里配置好Dockerfile文件&#xff0c;这样可以直接在idea中打包好后自动上传到镜像仓库&#xff0c…

jmeter 线程组

在jmeter中&#xff0c;通过指定并发数量、启动延迟时间和持续时间&#xff0c;并组织示例&#xff08;Samplers&#xff09;在多个线程之间的执行方式&#xff0c;实现模拟并发用户的行为。 添加线程组&#xff1a; 在测试计划中&#xff0c;右键点击“添加” -> “Thread…

spring高级源码50讲-37-42(springBoot)

Boot 37) Boot 骨架项目 如果是 linux 环境&#xff0c;用以下命令即可获取 spring boot 的骨架 pom.xml curl -G https://start.spring.io/pom.xml -d dependenciesweb,mysql,mybatis -o pom.xml也可以使用 Postman 等工具实现 若想获取更多用法&#xff0c;请参考 curl …

在kali环境下安装Beef-Xss靶场搭建

目录 一、更新安装包 二、安装beef-xss 三、启动Beef-Xss工具 1、查看hook.js 2、查看后台登录地址 3、查看用户名和登录密码 4、登录页面 5、点击 Hook me:将配置的页面导入BEEF中 一、更新安装包 ┌──(root㉿kali)-[/home/kali] └─# apt-get update 二、安装bee…

MySQL以及版本介绍

一、MySQL的介绍 MySQL数据库管理系统由瑞典的DataKonsultAB公司研发&#xff0c;该公司被Sun公司收购&#xff0c;现在Sun公司又被Oracle公司收购&#xff0c;因此MySQL目前属于 Oracle 旗下产品。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用…

Golang单元测试举例

1.第一个例子 cal.go package mainfunc addUpper(n int) int {res : 0for i : 1; i < n; i {res i}return res }func getSub(n1 int, n2 int) int {return n1 - n2 }cal_test.go package main//测试文件名必须是_test.go结尾 //测试函数必须Test开头 import ("fmt…

CAD怎么批量打印出来?学会这个方法快速打印

CAD文件是3D设计或2D图纸的数字版本&#xff0c;可以使用计算机软件创建和修改。如果遇到以下几种情况&#xff0c;我们可能需要将CAD文件打印出来&#xff1a; 1、制造和生产&#xff1a;CAD文件可以用于制造和生产物品&#xff0c;例如汽车零件、建筑工程、机械工具等。打印…

广电运营商三网融合监控运维方案

随着三网融合逐步发展、深化&#xff0c;广电网络从为用户提供原本单一的信息服务转向了集语音、文字、图像为一体的信息服务&#xff0c;同时也实现了由单一独立的网络向综合性网络的改变。如何在业务的融合与竞争中创造核心竞争力&#xff0c;利用自身网络覆盖率上的优势&…

电脑报错vcomp100.dll丢失怎样修复,多个解决方法分享

今天&#xff0c;我想和大家分享一下关于vcomp100.dll丢失修复的经验。在我们的日常生活中&#xff0c;电脑出现问题是在所难免的&#xff0c;而vcomp100.dll文件丢失的问题也是很常见的。那么&#xff0c;当遇到这个问题时&#xff0c;我们应该如何进行修复呢&#xff1f;接下…

pdf转word格式乱了怎么调整?学学这个转换方法

pdf转word格式乱了怎么调整&#xff1f;PDF文件通常不能编辑&#xff0c;这使得它们在需要修改或添加内容时变得不方便。因此&#xff0c;将PDF文件转换为Word文档可以使它们更容易编辑和更新。当pdf转换成word的时候&#xff0c;格式乱了的话&#xff0c;也可以直接进行调整。…

许战海咨询战略文库│确保战略成功:21世纪企业须建立竞争性组织

摘要&#xff1a;在21世纪激烈的市场竞争中,打造竞争性组织是解锁企战略成功的关键因素。邓小平的智慧名言“方向定了,干部是决定因素”也充分印证了这一点,建立一个适应新时代、新竞争环境的竞争性组织&#xff0c;企业才能在不断变化和发展的市场环境中立于不败之地。 “方向…

文件上传下载

文件上传下载 创建模块 web.xml <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-a…

基于侏儒猫鼬算法优化的BP神经网络(预测应用) - 附代码

基于侏儒猫鼬算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于侏儒猫鼬算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.侏儒猫鼬优化BP神经网络2.1 BP神经网络参数设置2.2 侏儒猫鼬算法应用 4.测试结果&#xff1a;5…

【经验分享】Markdown中如何显示空格和回车

Markdown中如何显示空格和回车 空格 利用html中的空格实体引用&#xff1a; eg&#xff1a; 这是一些 额外的空格。回车&#xff1a; 方法一&#xff1a;在你想要回车的地方连续按两次回车键 方法二&#xff1a;使用<br>标签 eg&#xff1a; 我想显示<br>…

【vue】盘点Vue2和Vue3的10种组件通信方式:

文章目录 一、介绍:二、props【1】选项式API【2】组合式Api【3】setup语法糖 三、emit【1】选项式API【2】组合式Api【3】setup语法糖 四、attrs和listeners【1】选项式API【2】组合式API【3】setup语法糖 五、provide/inject【1】选项式API【2】组合式API【3】setup语法糖 六、…

Linux根目录的文件系统是如何被挂载的

第一步是先在内存中创建rootfs.这时rootfs只有 “/” 目录。 https://mp.weixin.qq.com/s?__bizMzUxNDUwOTc0Nw&mid2247484182&idx1&snc807877da1181fa97175c1a6602ad763&chksmf9459dcace3214dcee56f68ac03b8b377f4febf5fd8ca28e2ff9a403ac0940f91c6617338625…

1.(python数模)单函数读取常用文件

Python单函数读取常用文件 代码如下&#xff1a; import pandas as pd# 读取数据文件 def readDataFile(readPath): # readPath: 数据文件的地址和文件名try:if (readPath[-4:] ".csv"):dfFile pd.read_csv(readPath, header0, sep",") # 间隔符为逗…

企业MR虚拟直播有哪些特色,值得一试

阿酷TONY / 长沙 / 2023-9 很多网友问我&#xff0c;到底什么是MR直播&#xff0c;好吧&#xff0c;上视频&#xff0c;快&#xff0c;挺急的&#xff1a; 到底什么是MR直播&#xff08;附上MR直播效果的视频实例&#xff09; [ 绿幕抠像 虚拟场景&#xff08;三维场景&#…

2020ICPC南京站

K K Co-prime Permutation 题意&#xff1a;给定n和k&#xff0c;让你构造n的排列&#xff0c;满足gcd(pi, i)1的个数为k。 思路&#xff1a;因为x和x-1互质&#xff0c;1和任何数互质&#xff0c;任何数和它本身不互质 当k为奇数时&#xff0c;p11&#xff0c;后面k-1个数…