Python 全栈体系【三阶】(三)

第一章 Django

七、静态文件

1. 概述

静态文件是指在WEB应用中的图像文件、CSS文件、Javascript文件。

2. 静态文件的配置

settings.py中关于静态文件的配置如下:

STATICFILES_DIRS = [BASE_DIR , 'static',
]STATIC_URL = '/static/'

其中:

  • STATICFILES_DIRS列表用于指定静态文件在服务器的存储位置,如果指定了多个路径,在访问静态文件时将依次进行查找。
  • STATIC_URL是指访问静态文件时要使用的URL

3. 访问静态文件

访问静态文件时需要以下两步:

第一步:在模板文件中加载static ,语法结构为:

{% load static %}

第二步:访问静态文件,语法结构为:

<link rel="stylesheet" href="{% static 'styles/reset.css' %}"><img src="{% static 'images/logo.png' %}"><script src="{% static 'scripts/common.js' %}">

补充:

add过滤器

{{ variable|add:value}}

该过滤器既可以完成数学的加法运算,也可以完成字符串的拼接。

如:

{% for product in proucts %}
<p>{{product.name}}</p>
<p><img src="{% static 'images'|add:product.image%}"></p>
{% endfor%}

只要是在模板文件中引用图片的路径、CSS文件的路径及JS文件的路径,都必须使用{% static %} 标签。但独立的CSS文件或JS文件内要引用其他的文件(如图片文件),则直接使用相对路径即可。

common.css的文件代码如下:

.logo{width:380px;height:240px;background:url(../images/logo.png)
}

但假设该类直接书写在index.html的话,则需要写成:

<html><head><style>.logo{width:380px;height:240px;background:url({% static 'images/logo.png' %})}</style></head><body>...</body>
</html>

八、应用

1. 概述

Django中,每个项目的独立业务模块就称为一个应用。在每个应用中可以包含其相对独立的模板、静态文件、视图函数、路由等。

2. 创建应用

Django创建应用通过以下两步实现:

2.1 第一步:创建应用
python3 manage.py startapp name

示例如下:

python3 manage.py startapp users
2.2 第二步:注册应用

settings.pyINSTALLED_APPS列表中添加已创建的应用,如:

INSTALLED_APPS = [# ...'users'
]

应用的目录结构如下:

users
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│   └── __init__.py
├── models.py
├── tests.py
└── views.py

其中:

  • views.py指视图函数的处理文件
  • models.py指模型类文件
  • migrations是数据迁移目录

一般情况下,每个应用目录都"必须"存在urls.py文件,用于存储应用的路由信息。

2.3 分布式路由

include()函数

include()函数位于django.urls包内:

from django.urls import include

其作用是允许引用其他的路由文件(URLConfs)。每当Django遇到include()时,它会截断与此项匹配URL,将剩余的字符串发送到其他的路由文件进行处理。

在这里插入图片描述

在启用settings.pyTEMPLATES选项中的APP_DIRS后,在搜索模板时将先行搜索根目录下的templates ,然后依次搜索应用目录下的 templates目录。

如果应用的独立的,也就是说这个应用后续还可能被其他项目使用,那么建议:模板文件、静态资源等存储应用目录内。如果项目是用于特定目的的,那么这些静态资源最好存储在项目目录内。

九、HTTP协议

1. 请求

<request-line>
<headers>
<blank-line>
[<request-body>]
1.请求行包含请求类型,文件的路径及HTTP版本号
2.请求头包含附加的信息
3.请求体

2. 响应

<status-line>
<headers>
<blank-line>
<response-body>1.状态行,包括HTTP协议及服务器响应的状态码
2.响应头
3.响应体

3. HttpRequest对象

当一个页面被请求时,Django会自动创建一个HttpRequest对象,这个对象中包含了请求的元数据。而且这个对象将作为视图函数的第一个参数。视图函数的基本结构如下:

def view_function_name(request):request.属性request.方法()......

属性:

HttpRequest.method,用于获取HTTP请求的类型,返回值为大写字母,如GETPOST

HttpRequest.GET,将返回所有URL地址栏参数形成的对象,该对象类似于字典对象 – QueryDict

HttpRequest.POST,将返回表单以POST方式提交所有数据组成的对象,该对象类似于字典对象 – QueryDict

HttpRequest.COOKIES,返回所有的cookies信息

HttpRequest.FILES,获取所有经过HTTP POST上传文件的信息

重要提示:

在通过表单实现文件上传时,表单必须注意以下事项:

1.表单只能通过POST提交

2.必须设置表单的enctype="multipart/form-data"属性

表单形如:

<form method="post" enctype="multipart/form-data">{% csrf_token %}<input type="file" name="avatar">...
</form>

HttpRequest.session,返回所有的会话(session)信息

方法

HttpRequest.get_host()用于获取主机信息

HttpRequest.get_port()用于获取主机的端口号

HttpRequest.get_full_path()用于获取路径,包含有查询关键字

4. HttpResponse

HttpResponse对象是程序员的责任。理论上来说,每个HTTP请求都应该存在一个响应对象。

HttpResponse对象的构造函数是:

HttpResponse(content='',content_type=None,status=None)

其中:

content代表响应的内容

content_type代表响应的类型,默认为text/html

status代表响应的状态码,默认为200

常见的content-type属性值有:

MIME类型说明
text/plain纯文本文件
text/htmlHTML文件
text/cssCSS文件
text/javascriptJavaScript文件
application/jsonJSON数据
image/gifGIF图像
image/jpgJPGJPEG图像
image/pngPNG图像

JSON的官网:

https://www.json.org/json-zh.html

子类

子类描述
HttpResponseRedirect重定向
HttpResponseNotModified未修改
HttpResponseBadRequest错误请求
HttpResponseServerError服务器错误
HttpResponseNotFound对象未找到

十、QueryDict对象

在这里插入图片描述

get()

get()方法用于返回指定键的值,语法结构为:

QueryDict.get(key)

getlist()
getlist()方法用于返回指定值的值所组成的列表,其语法结构是:

QueryDict.getlist(key)

itmes()将返回由键名和键值组成的列表,语法结构是:

QueryDict.items()

values()将近回由键值组成的列表,语法结构是:

QueryDict.items()

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

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

相关文章

C++——模板初阶 | STL简介

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;Yan. yan.                        …

便携气象站:科技助力气象观测

在科技飞速发展的今天&#xff0c;便携气象站以其轻便、高效、全面的特点&#xff0c;正逐渐改变着气象观测的传统模式。这款小巧而强大的设备&#xff0c;不仅为气象学研究和气象灾害预警提供了有力支持&#xff0c;更为户外活动、农业生产等领域带来了诸多便利。 便携气象站是…

Redis+Lua脚本+AOP+反射+自定义注解,打造我司内部基础架构限流组件

定义注解 Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Documented public interface RedisLimitAnnotation {/*** 资源的key,唯一* 作用&#xff1a;不同的接口&#xff0c;不同的流量控制*/String key() default "";/*** 最多的访问限制次数…

算法日记day 17(二叉树的最大、最小深度)

一、二叉树的最大深度 题目&#xff1a; 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1…

STM32智能机器人控制系统教程

目录 引言环境准备智能机器人控制系统基础代码实现&#xff1a;实现智能机器人控制系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与导航系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;机器人控制与优化问题解决方案与优化收尾与总结 1. 引言 智能机器人控…

qt中charts图表的使用方法

折线图 #include "widget.h" #include "ui_widget.h" #include <QtCharts/QChart> #include <QtCharts/QChartView> #include <QtCharts/QLineSeries> #include<QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent), …

Windows图形界面(GUI)-MFC-C/C++ - MFC项目工程框架解析

公开视频 -> 链接点击跳转公开课程博客首页 -> e​​​​​​链接点击跳转博客主页 目录 MFC项目 项目选择 配置安装 程序引导 MFC框架 环境设置 程序框架 代码编写 MFC解析 程序入口 执行流程 代码结构 应用程序类 窗口框架类 消息处理 消息类型 消息…

ML.Net 学习之使用经过训练的模型进行预测

什么是ML.Net&#xff1a;&#xff08;学习文档上摘的一段&#xff1a;ML.NET 文档 - 教程和 API 参考 | Microsoft Learn 【学习入口】&#xff09; 它使你能够在联机或脱机场景中将机器学习添加到 .NET 应用程序中。 借助此功能&#xff0c;可以使用应用程序的可用数据进行自…

一个简单好用安全的开源交互审计系统,支持SSH,Telnet,Kubernetes协议(带私活)

前言 在当今的企业网络环境中&#xff0c;远程访问和交互审计成为了保障网络安-全的重要组成部分。然而&#xff0c;现有的解-决方案往往存在一些痛点&#xff0c;如复杂的配置、有限的协议支持、以及审计功能的不足。这些问题不仅增加了IT管理员的负担&#xff0c;也为企业的…

基于R语言复杂数据回归与混合效应模型【多水平/分层/嵌套】技术与代码

回归分析是科学研究特别是生态学领域科学研究和数据分析十分重要的统计工具&#xff0c;可以回答众多科学问题&#xff0c;如环境因素对物种、种群、群落及生态系统或气候变化的影响&#xff1b;物种属性和系统发育对物种分布&#xff08;多度&#xff09;的影响等。纵观涉及数…

HarmonyOS NEXT零基础入门到实战-第四部分

自定义组件: 概念: 由框架直接提供的称为 系统组件&#xff0c; 由开发者定义的称为 自定义组件。 源代码&#xff1a; Component struct MyCom { build() { Column() { Text(我是一个自定义组件) } } } Component struct MyHeader { build() { Row(…

路由器ip地址脱机是什么意思?怎么应对

在数字化时代&#xff0c;路由器作为家庭或企业网络连接的核心设备&#xff0c;其稳定性和连通性对于我们的网络体验至关重要。然而&#xff0c;有时我们可能会遇到路由器IP地址显示脱机的情况&#xff0c;这不仅影响了我们的网络访问&#xff0c;还可能对工作和娱乐造成不便。…

【C语言】 约瑟夫环,循环链表实现

1、循环链表实现约瑟夫环&#xff0c;每次经过特定步数删除一个元素 //looplist.h #ifndef LOOPLIST_H #define LOOPLIST_H #include<stdio.h> #include<string.h> #include<stdlib.h>typedef int datatype;typedef struct Node {union {int len;datatype d…

Elasticsearch:Java ECS 日志记录 - log4j2

ECS 记录器是你最喜欢的日志库的格式化程序/编码器插件。它们可让你轻松将日志格式化为与 ECS 兼容的 JSON。ECS 兼容的 JSON 日志记录可以帮我们简化很多分析&#xff0c;可视化及解析的工作。在今天的文章里&#xff0c;我来详述如何在 Java 应用里生成 ECS 相兼容的日志。 …

tensorflow keras Model.fit returning: ValueError: Unrecognized data type

题意&#xff1a;TensorFlow Keras 的 Model.fit 方法返回了一个 ValueError&#xff0c;提示数据类型无法识别 问题背景&#xff1a; Im trying to train a keras model with 2 inputs: an image part thats a tf.data.Dataset and a nor mal part represented by a pd.DataF…

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.5技术架构

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

数据结构之判断平衡二叉树详解与示例(C,C++)

文章目录 AVL树定义节点定义计算高度获取平衡因子判断是否为平衡二叉树完整示例代码结论 在计算机科学中&#xff0c;二叉树是一种非常重要的数据结构。它们被广泛用于多种算法中&#xff0c;如排序、查找等。然而&#xff0c;普通的二叉树在极端情况下可能退化成链表&#xff…

C#基于SkiaSharp实现印章管理(4)

前几篇文章实现了绘制不同外形印章的功能&#xff0c;印章内部一般包含圆形、线条等形状&#xff0c;有些印章内部还有五角星&#xff0c;然后就是各种样式的文字。本文实现在印章内部绘制圆形、线条、矩形、椭圆等四种形状。   定义FigureType枚举记录印章内部形状&#xff…

pcie数据传输

一 数据传输通道总体设计 在上传数据时首先将 FPGA 中数据缓存到 DDR3 存储器&#xff0c;然后上位机请求后把数据从DDR3 存储器中取出并通过 PCIE 总线将数据传输到上位机&#xff1b;在下传数据时上位机中的数据首先通过 PCIE 总线下传至 FPGA&#xff0c;FPGA 读取这些数据并…

小程序内嵌uniapp页面跳转回小程序指定页面方式

使用微信小程序提供的Api&#xff1a;wx.miniProgram.navigateTo 在小程序中嵌套uniapp的H5页面&#xff0c;并使用wx.miniProgram.navigateTo进行页面跳转&#xff0c;需要确保满足以下条件&#xff1a; 你的小程序必须是通过uniapp构建的&#xff0c;并且支持小程序嵌套。 你…