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

news2025/1/9 10:01:15

第一章 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.coloradmin.cn/o/1941922.html

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

相关文章

Vue 3 + Vite 项目中安装 Tailwind CSS

官网&#xff1a;安装 - TailwindCSS中文文档 | TailwindCSS中文网 tips&#xff1a;只按照官网的配置可能会导致样式不加载/加载不生效的问题 1、正确安装指令 npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p 自动生成 ​tailwind.config.js​…

鱼眼摄像头-opencv校准(基于棋盘+畸变表)

一&#xff1a;主要参数说明 1&#xff1a;内参矩阵K 是3*3的矩阵&#xff0c;其类似格式 Knp.array([ [389.2109574522624, 0.0, 630.2525667489842], [0.0, 388.505701978078, 360.7886749292513], [0.0, 0.0, 1.0]]) 2&#xff1a;畸变系数 针对鱼眼相机&#xff1a;…

DVWA靶场超(详细教程)--跨站攻击(XSS+CSRF)

一、XSS 反射型xss 打开dvwa的Reflected Cross Site Scripting (XSS) &#xff08;1&#xff09;low等级 查看页面源码&#xff08;ctrlu&#xff09;该界面有提交按钮和输入框 在输入框随便输入点字符&#xff0c;点击提交 可以看见输入的helloword嵌入到界面中。 View sou…

MybatisPlus的使用与详细讲解

今天我们来讲解一下Mybatis的升级版&#xff0c;就是MybatisPlus. MybatisPlus是如何获取实现CRUD的数据库表信息的&#xff1f; 默认以类名驼峰转下划线作为表名 默认把名为id的字段作为主键 默认把变量名驼峰转下划线作为表的字段名 1.MybatisPlus中比较常见的注解 TableN…

红人点集登录逆向+接口逆向:SHA256算法和Webpack反爬

&#x1f50d; 引言 红人点集采取了一系列加密和限制措施&#xff0c;主要是对于参数加密和登录token加密。今天利用Python与JavaScript逆向工程技术&#xff0c;实现逆向登录然后请求接口获取数据。 &#x1f50d; 思路与步骤详解 &#x1f527; 解密登录接口参数&#xf…

安防视频监控EasyCVR视频汇聚平台修改配置后无法启动的原因排查与解决

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构&#xff0c;兼容性强、支持多协议接入&#xff0c;包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…

【Echarts示例】类甘特图的时间线图表

[示例] 类甘特图的时间线图表 const data [{ name: 预备阶段, start: 0, end: 2 },{ name: 战略展开, start: 2, end: 4 },{ name: 指挥所启动, start: 4, end: 6 },{ name: 电子对抗准备, start: 5.5, end: 7 },{ name: 首轮导弹发射, start: 7, end: 8.5 },{ name: 电子对抗…

Spark内核的设计原理

导读&#xff1a; 本期是DataFun深入浅出Apache Spark第一期的分享&#xff0c;主讲老师耿嘉安开场介绍了自己的从业经历&#xff0c;当前就职的数新网络与Spark相关的两款产品赛博数智引擎CyberEngine和赛博数据智能平台CyberData。 本次分享题目为《Spark内核的设计原理》&…

【测开能力提升-fastapi框架】fastapi能力提升 - 中间件与CORS

1. 中间件 1.1 介绍&#xff08;ChatGPT抄的&#xff0c;大致可以理解&#xff09; 一种机制&#xff0c;用于在处理请求和响应之前对其进行拦截、处理或修改。中间件可以在应用程序的请求处理管道中插入自定义逻辑&#xff0c;以实现一些通用的功能&#xff0c;如身份验证、…

系统架构设计师教程 第3章 信息系统基础知识-3.8 典型信息系统架构模型-解读

系统架构设计师教程 第3章 信息系统基础知识-3.8 典型信息系统架构模型-解读 3.8.1 政府信息化与电子政务3.8.1.1 电子政务的概念3.8.1.2 电子政务的内容3.8.1.2.1 政府与政府3.8.1.2.2 政府对企/事业单位3.8.1.2.3 政府对居民3.8.1.2.4 企业对政府3.8.1.2.5 居民对政府 3.8.1…

第一弹:基于ABAP OLE技术实现对服务器文件进行读写操作

前言 最近遇到这样一个需求&#xff0c;需要对BW服务器上的文件进行下载的同时写入每个用户相对应的数据。之前的服务器模版是一个死模版&#xff0c;对于这样的要求&#xff0c;我就想到了OLE技术&#xff0c;那么什么是OLE技术呢&#xff1f; 一、什么是OLE技术&#xff1f…

创建最佳实践创建 XML 站点地图--SEO

您是否正在努力让您的网站被搜索引擎索引&#xff1f;您想提高您网站的搜索引擎知名度吗&#xff1f;如果是&#xff0c;您可能会错过 XML 站点地图的重要性。XML 站点地图在改善您网站的 SEO 方面发挥着至关重要的作用。‍ XML 站点地图是您网站结构的蓝图&#xff0c;可帮助…

基于DPUSmartNic的云原生SDN解决方案

1. 方案背景与挑战 随着云计算&#xff0c;大数据和人工智能等技术的蓬勃发展&#xff0c;数据中心面临着前所未有的数据洪流和计算压力&#xff0c;这对SDN提出了更高的性能和效率要求。自云原生概念被提出以来&#xff0c;Kubernetes为云原生应用的落地提供了一个轻量级&am…

tolua++bug,int64强转double导致值不对

我C传值给lua&#xff0c;接口用的tolua。传过去值不对&#xff0c;我都懵逼了。是C强转问题。

C#中栈和堆以及修饰符

关于堆中字符串的存放 string s1"123" string s2"123" string s1"456" 此时s1输出为456 而s2仍然为123 因为在使用 String str "字符串" 的方式来创建String变量的时候&#xff0c;那么String的值便会存储在String常量池中&#x…

DevExpress中文教程 - 如何在.NET MAUI应用中实现Material Design 3?

DevExpress .NET MAUI多平台应用UI组件库提供了用于Android和iOS移动开发的高性能UI组件&#xff0c;该组件库包括数据网格、图表、调度程序、数据编辑器、CollectionView和选项卡组件等。 获取DevExpress v24.1正式版下载 Material Design是一个由Google开发的跨平台指南系统…

linux、windows、macos清空本地DNS缓存

文章目录 Linux&#xff1a;Windows&#xff1a;macOS&#xff1a; Linux&#xff1a; 对于使用systemd的操作系统&#xff08;如CentOS 7、Ubuntu 16.04&#xff09;&#xff0c;可以使用以下命令重启systemd-resolved服务来清除缓存&#xff1a; sudo systemctl restart sys…

Mistral联合英伟达开源12B小模型:碾压Llama 3,单张4090可跑

小模型&#xff0c;成为本周的AI爆点。 与动辄上千亿参数的大模型相比&#xff0c;小模型的优势是显而易见的:它们不仅计算成本更低&#xff0c;训练和部署也更为便捷&#xff0c;可以满足计算资源受限、数据安全级别较高的各类场景。因此&#xff0c;在大笔投入大模型训练之余…

【ROS2】高级:安全-设置访问控制

目标&#xff1a;限制节点可以使用的主题。 教程级别&#xff1a;高级 时间&#xff1a;20 分钟 内容 背景 修改 permissions.xml签署策略文件 启动节点 使用模板 背景 在继续之前&#xff0c;请确保您已完成设置安全教程。 权限非常灵活&#xff0c;可以用来控制 ROS 图中的许…

pytorch 笔记:torch.optim.Adam

torch.optim.Adam 是一个实现 Adam 优化算法的类。Adam 是一个常用的梯度下降优化方法&#xff0c;特别适合处理大规模数据集和参数的深度学习模型 torch.optim.Adam(params, lr0.001, betas(0.9, 0.999), eps1e-08, weight_decay0, amsgradFalse, *, foreachNone, maximizeFa…