一周学会Django5 Python Web开发-项目配置settings.py文件-资源文件配置

news2024/11/24 17:46:32

锋哥原创的Python Web开发 Django5视频教程:

2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计17条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV14Z421z78C/资源文件配置分为静态资源和媒体资源。静态资源的配置方式由配置属性STATIC_URL、STATICFILES DIRS和STATIC_ROOT进行设置;媒体资源的配置方式由配置属性MEDIA_URL和MEDIA ROOT决定。

静态资源配置=STATIC_URL

静态资源指的是网站中不会改变的文件。在一般的应用程序中,静态资源包括CSS文件、JavaScript文件以及图片等资源文件。

默认配置,app下的static目录为静态资源,可以直接访问。其他目录不行。

STATIC_URL = 'static/'

我们在app下新建static目录,再放一个logo.png图片。

同时在app目录下再新建一个images目录,放一个qq.jpg头像图片

最后再项目目录下新建一个static,放一个pig.jpg,也试试看是否可以访问;

http://127.0.0.1:8000/static/logo.png我们启动项目测试:

先测试app下的static目录下的logo.png,能显示没问题。

http://127.0.0.1:8000/static/logo.png

再试试app下的images目录下的qq.jpg

http://127.0.0.1:8000/static/qq.jpg

404不存在

最后再测试下项目目录下的static下的pig.jpg

http://127.0.0.1:8000/static/pig.jpg

也是404不存在。

通过测试说明,也就app下的static目录下的静态资源才能访问。

静态资源集合配置-STATICFILES DIRS

由于STATIC_URL的特殊性,在开发中会造成诸多不便,比如将静态文件夹存放在项目的根目录以及定义多个静态文件夹等。我们可以通过配置STATICFILES DIRS实现多个目录下的静态资源可以访问。

# 设置静态资源文件集合
STATICFILES_DIRS = [BASE_DIR / "static", BASE_DIR / "helloWorld/images"]

我们再测试下:

http://127.0.0.1:8000/static/pig.jpg

http://127.0.0.1:8000/static/qq.jpg

静态资源部署配置-STATIC_ROOT

静态资源配置还有STATIC_ROOT,其作用是在服务器上部署项目,实现服务器和项目之间的映射。STATIC_ROOT 主要收集整个项目的静态资源并存放在一个新的文件夹,然后由该文件夹与服务器之间构建映射关系。STATIC_ROOT配置如下:

# 静态资源部署
STATIC_ROOT = BASE_DIR / 'static'

当项目的配置属性 DEBUG 设为True的时候,Django 会自动提供静态文件代理服务,此时整个项目处于开发阶段,因此无须使用STATIC_ROOT。当配置属性DEBUG 设为False的时候,意味着项目进入生产环境,Django不再提供静态文件代理服务,此时需要在项目的配置文件中设置STATIC_ROOT。 设置STATIC_ROOT需要使用 Django操作指令collectstatic来收集所有静态资源,这些静态资源都会保存在STATIC_ROOT所设置的文件夹里。

媒体资源配置-MEDIA

一般情况下,STATIC_URL是设置静态文件的路由地址,如CSS样式文件、JavaScript文件以及常用图片等。对于一些经常变动的资源,通常将其存放在媒体资源文件夹,如用户头像、歌曲文件等。

媒体资源和静态资源是可以同时存在的,而且两者可以独立运行,互不影响,而媒体资源只有配置属性MEDIA_URL和 MEDIA_ROOT。

我们在项目目录下新建media目录,里面再放一个boy.jpg图片。

然后在配置文件settings.py里设置配置属性MEDIA_URL和 MEDIA_ROOT,MEDIA_URL用于设置媒体资源的路由地址,MEDIA_ROOT用于获取 media文件夹在计算机系统的完整路径信息,如下所示:

# 设置媒体路由
MEDIA_URL = 'media/'
# 设置media目录的完整路径
MEDIA_ROOT = BASE_DIR / 'media'

配置属性设置后,还需要将media文件夹注册到 Django里,让 Django知道如何找到媒体文件,否则无法在浏览器上访问该文件夹的文件信息。打开项目文件夹的urls.py文件,为媒体文件夹media添加相应的路由地址,代码如下:

from django.conf import settings
from django.contrib import admin
from django.urls import path, re_path
from django.views.static import serve

import helloWorld.views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', helloWorld.views.index),
    # 配置媒体文件的路由地址
    re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}, name='media')
]

我们来测试下:

http://127.0.0.1:8000/media/boy.jpg

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

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

相关文章

开关电源电路主要元器件基础知识详解

在学习电子电路过程中&#xff0c;电源我们无法绕开的一个重要部分&#xff0c;很多时候&#xff0c;故障就出现在电源部分&#xff0c;特别是开关电源。开关电源电路主要是由熔断器、热敏电阻器、互感滤波器、桥式整流电路、滤波电容器、开关振荡集成电路、开关变压器、光耦合…

使用 RAG 创建 LLM 应用程序

如果您考虑为您的文件或网站制作一个能够回应您的个性化机器人&#xff0c;那么您来对地方了。我可以帮助您使用Langchain和RAG策略来创建这样一个机器人。 了解ChatGPT的局限性和LLMs ChatGPT和其他大型语言模型&#xff08;LLMs&#xff09;经过广泛训练&#xff0c;以理解…

七天入门大模型 :大模型量化及低成本部署最佳实践

七天入门大模型已完成了5篇&#xff0c;喜欢记得收藏、关注、点赞。 七天入门大模型 &#xff1a;LLM大模型基础知识最全汇总七天入门大模型 &#xff1a;提示词工程 Prompt Engineering&#xff0c;最全的总结来了&#xff01;七天入门大模型 &#xff1a;LLM和多模态模型高效…

OpenAI发布Sora,另一个层次的黑科技

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

清除Django的管理员admin站点中“Recent Actions“最近活动面板上的所有信息

清除Django的管理员admin站点中"Recent Actions"最近活动面板上的所有信息 本文主要介绍了如何清除Django的管理员admin站点中"Recent Actions"最近活动面板上的所有信息 操作步骤如下 进入Django项目目录中运行代python manage.py shell进入Django shell…

贪心第一天,别太贪了

今天是贪心第一天&#xff0c;做376. 摆动序列时脑子都要干烧了&#xff0c;贪心的题还是很有意思的&#xff0c;对于理论知识&#xff0c;我觉得做题的时候就想这两个问题吧&#xff1a; 如何找到局部最优解呢&#xff1f;用这个局部最优解模拟示例后能通过吗&#xff1f; 455…

Transformer面试十问

1 Scaled Dot-Product Attention中为什么要除以 d k \sqrt{d_k} dk​ ​? 1. 从纯数学上考虑&#xff1a;对于输入均值为0,方差为1的分布&#xff0c;点乘后结果其方差为dk&#xff0c;所以需要缩放一下。下图为原论文注释。 2. 从神经网络上考虑&#xff1a;防止在计算点积…

【Linux】程序地址空间 -- 详解 Linux 2.6 内核进程调度队列 -- 了解

一、程序地址空间回顾 在学习 C/C 时&#xff0c;我们知道内存会被分为几个区域&#xff1a;栈区、堆区、全局/静态区、代码区、字符常量区等。但这仅仅是在语言层面上的理解&#xff0c;是远远不够的。 如下空间布局图&#xff0c;请问这是物理内存吗&#xff1f; 不是&…

C语言scanf函数详解..

1.前言 前面说过了printf函数 他是将二进制表示的整数、浮点数、字符、字符串根据转换规范转换成字符或者字符串 并且打印到了控制台上 那么既然有了输出函数 那么肯定也有输入函数咯 的确如此 他就是scanf函数 他是将字符或者字符串根据转换规范转换成二进制表示的整数、浮点…

Conda管理Python不同版本教程

Conda管理Python不同版本教程 目录 0.前提 1.conda常用命令 2.conda管理python库 不太推荐 pyenv管理Python不同版本教程&#xff08;本人另一篇博客&#xff0c;姊妹篇&#xff09; 0.前提 ①anaconda、miniconda在win上推荐前者&#xff0c;在linux上推荐后者&#xff0…

随机过程及应用学习笔记(一)概率论(概要)

概率是随机的基础&#xff0c;在【概率论&#xff08;概要&#xff09;】这个部分中仅记录学习随机过程及应用的基本定义和结果。 前言 首先&#xff0c;概率论研究的基础是概率空间。概率空间由一个样本空间和一个概率测度组成&#xff0c;样本空间包含了所有可能的结果&…

LCR 127. 跳跃训练【简单】

LCR 127. 跳跃训练 题目描述&#xff1a; 今天的有氧运动训练内容是在一个长条形的平台上跳跃。平台有 num 个小格子&#xff0c;每次可以选择跳 一个格子 或者 两个格子。请返回在训练过程中&#xff0c;学员们共有多少种不同的跳跃方式。 结果可能过大&#xff0c;因此结果…

Transformer——Attention 注意力机制

注意力机制 Transformer的注意力机制借鉴了人类的注意力机制。人类通过眼睛的视觉单元去扫描图像&#xff0c;其中的重点区域会被大脑的神经元处理从而获得更多的信息&#xff0c;这是人类长期精华所获得的一种能力。 以论文中的例子来看&#xff0c;红色区域表示我们人脑视觉…

linux内核模块find_module()函数详解--02

亲爱的粉丝朋友们大家好&#xff0c;为了更好的服务大家&#xff0c;提升分析问题和解决问题的能力&#xff0c;先针对Linux内核里面的API函数进行详细分析&#xff0c;并利用案例进行说明&#xff0c;加强对内核API函数的认识。 第一&#xff1a;函数原型 //头文件包含 #incl…

晨曦记账本,微信账单全解析,轻松掌握收支明细与总花销!

在这个数字化时代&#xff0c;微信已不仅仅是一个简单的社交工具&#xff0c;更是我们日常生活中不可或缺的支付与收款平台。从购买早餐、支付水电费到线上购物&#xff0c;微信支付已经渗透到我们生活的方方面面。然而&#xff0c;你是否曾经对自己的微信消费产生过疑惑&#…

线程的状态与切换

文章目录 线程的状态与切换一、线程的状态1、操作系统层面&#xff08;5种&#xff09;2、Java_API层面&#xff08;6种&#xff09; 二、让出时间片 - yield三、线程插队 - join1、源码分析2、应用1 - 等待线程结果3、应用2 - 控制执行顺序 四、计时等待 - sleep五、等待唤醒 …

2024春节联欢晚会刘谦魔术分析

春晚已经越来越拉胯了&#xff0c;看着节目单没一个能打的&#xff0c;本来想说&#xff1a;办不起&#xff0c;就别办呗。 没想到第二天刘谦的魔术以一种很奇特的姿势火起来了&#xff0c;干脆蹭个热度&#xff0c;分析下魔术的原理。 魔术1 这个不算什么新奇的节目&#xf…

老师的“神秘武器”——教育战线的宝藏工具

每次考试成绩发布&#xff0c;是不是总让你头疼不已&#xff1f;面对一摞摞试卷&#xff0c;一个个需要手动输入的成绩&#xff0c;你是否也感到力不从心&#xff1f;别急&#xff0c;今天我就为大家揭秘老师们的“神秘武器”——那些在教育战线上&#xff0c;让老师们事半功倍…

代码随想录刷题笔记-Day18

1. 合并二叉树 617. 合并二叉树https://leetcode.cn/problems/merge-two-binary-trees/ 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;…

【图像分割 2024】ParaTransCNN

【图像分割 2024】ParaTransCNN 论文题目&#xff1a;ParaTransCNN: Parallelized TransCNN Encoder for Medical Image Segmentation 中文题目&#xff1a;用于医学图像分割的并行TransCNN编码器 论文链接&#xff1a;https://arxiv.org/abs/2401.15307 论文代码&#xff1a;H…