search
HomeBackend DevelopmentPython TutorialDetailed explanation of calling static files in Django learning

Detailed explanation of calling static files in Django learning

May 08, 2018 pm 01:44 PM
djangodocumenttransfer

This article mainly introduces the detailed explanation of calling static files for Django learning. It has certain reference value. Now I share it with you. Friends in need can refer to it.

Preface

Static files refer to js, ​​css, pictures, videos and other files in the website. This article mainly introduces the relevant content about static file calling in Django learning and shares it with everyone. Reference study, not much to say below, let’s take a look at the detailed introduction

The method is as follows

1.settings .py static file related sample code and instructions:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/
 
STATIC_URL = '/static/'
 
# 当运行 python manage.py collectstatic 的时候
# STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来
# 把这些文件放到一起是为了用apache等部署的时候更方便
STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
 
# 其它 存放静态文件的文件夹,可以用来存放项目中公用的静态文件,里面不能包含 STATIC_ROOT
# 如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以
STATICFILES_DIRS = (
 os.path.join(BASE_DIR, "common_static"),
 '/path/to/others/static/', # 用不到的时候可以不写这一行
)
 
# 这个是默认设置,Django 默认会在 STATICFILES_DIRS中的文件夹 和 各app下的static文件夹中找文件
# 注意有先后顺序,找到了就不再继续找了
STATICFILES_FINDERS = (
 "django.contrib.staticfiles.finders.FileSystemFinder",
 "django.contrib.staticfiles.finders.AppDirectoriesFinder"
)

##2.STATIC_ROOT

STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static')#BASE_DIR是项目的绝对地址

STATIC_ROOT is the directory where all static files are aggregated when deploying static files (pyhton manage.py collectstatic).

STATIC_ROOT should be written as an absolute address. Here, for example, mine The project mysite is /home/mysite/, then STATIC_ROOT is /home/mysite/collect_static/

When deploying the project, enter in the terminal:

python manage.py collectstatic

django will copy all static files to the STATIC_ROOT folder

3.STATICFILES_DIRS

STATIC_ROOT only comes into play during deployment, but in actual situations , there are two general placement locations for static files:

1. One is to create a new static folder in each app and put the static files in it. When loading static files, for example, in the template Static files are used in

django will automatically search for the static folder in each app (so, don’t write the wrong name of the folder, otherwise django will not be able to find your folder

2. Another option is to create a public folder outside all app files. Because some static files are not unique to a certain app, you can put them in

In a public folder for easy management (note that creating a public static file folder is just a way to facilitate management, but it is not necessary.

app can apply static files across apps because Finally, all static files will exist in STATIC_ROOT) The question now is how to let

django know that you put some static files in public folders other than app, then you need to configure STATICFILES_DIRS


STATICFILES_DIRS = (
 os.path.join(BASE_DIR, 'common_static'),
)

STATICFILES_DIRS tells django to first look for static files in STATICFILES_DIRS, and then look for them in the static folder of each app (note that django looks for static files It is a lazy search. It stops searching when it finds the first one)


3.STATIC_URL

So far, the static file mechanism can work, but there is one Question, can I directly access the static files in my project through URL? The answer is definitely yes, but please note that you are accessing it in the browser, and you cannot enter the local absolute address of your static files, for example The local address of one of my pictures is /home/mysite/common_static/myapp/photo.png


Then it is impossible for others to directly enter it on the browser:

http://192.168. 1.2:8000/home/mysite/common_static/myapp/photo.png

In this way, the browser will report an error, there is no such page


So how does django allow browsing The browser can also access static files on the server. As mentioned before, direct access to the local address of the server is not possible, so a mapping is needed. Django uses STATIC_URL to allow the browser to directly access static files, such as:

STATIC_URL = '/static/'

Then you can enter on the browser:

http://192.168.1.2:8000/static/common_static/myapp/photo.png

Then it is equivalent to accessing /home/mysite/common_static/myap/photo.png

So on the browser, use the specific content of the prefix STATIC_URL to map STATIC_ROOT,

HTTP: //192.168.1.2:8000/static is equivalent to STATIC_ROOT of the local address

Related recommendations:

A brief analysis of STATIC_ROOT, STATIC_URL and STATICFILES_DIRS in Django

The above is the detailed content of Detailed explanation of calling static files in Django learning. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Python and Time: Making the Most of Your Study TimePython and Time: Making the Most of Your Study TimeApr 14, 2025 am 12:02 AM

To maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.

Python: Games, GUIs, and MorePython: Games, GUIs, and MoreApr 13, 2025 am 12:14 AM

Python excels in gaming and GUI development. 1) Game development uses Pygame, providing drawing, audio and other functions, which are suitable for creating 2D games. 2) GUI development can choose Tkinter or PyQt. Tkinter is simple and easy to use, PyQt has rich functions and is suitable for professional development.

Python vs. C  : Applications and Use Cases ComparedPython vs. C : Applications and Use Cases ComparedApr 12, 2025 am 12:01 AM

Python is suitable for data science, web development and automation tasks, while C is suitable for system programming, game development and embedded systems. Python is known for its simplicity and powerful ecosystem, while C is known for its high performance and underlying control capabilities.

The 2-Hour Python Plan: A Realistic ApproachThe 2-Hour Python Plan: A Realistic ApproachApr 11, 2025 am 12:04 AM

You can learn basic programming concepts and skills of Python within 2 hours. 1. Learn variables and data types, 2. Master control flow (conditional statements and loops), 3. Understand the definition and use of functions, 4. Quickly get started with Python programming through simple examples and code snippets.

Python: Exploring Its Primary ApplicationsPython: Exploring Its Primary ApplicationsApr 10, 2025 am 09:41 AM

Python is widely used in the fields of web development, data science, machine learning, automation and scripting. 1) In web development, Django and Flask frameworks simplify the development process. 2) In the fields of data science and machine learning, NumPy, Pandas, Scikit-learn and TensorFlow libraries provide strong support. 3) In terms of automation and scripting, Python is suitable for tasks such as automated testing and system management.

How Much Python Can You Learn in 2 Hours?How Much Python Can You Learn in 2 Hours?Apr 09, 2025 pm 04:33 PM

You can learn the basics of Python within two hours. 1. Learn variables and data types, 2. Master control structures such as if statements and loops, 3. Understand the definition and use of functions. These will help you start writing simple Python programs.

How to teach computer novice programming basics in project and problem-driven methods within 10 hours?How to teach computer novice programming basics in project and problem-driven methods within 10 hours?Apr 02, 2025 am 07:18 AM

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

How to avoid being detected by the browser when using Fiddler Everywhere for man-in-the-middle reading?How to avoid being detected by the browser when using Fiddler Everywhere for man-in-the-middle reading?Apr 02, 2025 am 07:15 AM

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor