検索
ホームページバックエンド開発Python チュートリアルDjango学習における静的ファイルの呼び出しについて詳しく解説

この記事では主に、Django 学習のための静的ファイルの呼び出しについて詳しく説明します。これは、必要な友人に参照してもらうために共有します。この記事では、主に Django の学習における静的ファイルの呼び出しに関する関連コンテンツを紹介します。以下ではあまり説明しません。

方法は以下の通りです

1.settings.py 静的ファイル関連のサンプルコードと手順:

# 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 は静的ファイルをデプロイしています (pyhton manage.pycollectstatic) すべての静的静的集約ディレクトリを作成する場合、

STATIC_ROOT は絶対アドレスとして記述する必要があります。ここで、たとえば、私のプロジェクト mysite が /home/mysite/ である場合、STATIC_ROOT は次のようになります。 /home/mysite/collect_static/

プロジェクトをデプロイするときに、ターミナルに次のように入力します:

python manage.py collectstatic

django はすべての静的ファイルを STATIC_ROOT フォルダーにコピーします

3 STATICFILES_DIRS

STATIC_ROOT のみが機能します。デプロイメント中、実際には、静的ファイルの一般的な配置場所は 2 つあります:

1. 1 つは、静的ファイルを読み込むときに、各アプリに新しい静的フォルダーを作成し、その中に静的ファイルを配置することです。たとえば、To static files を使用すると、

django は各アプリの静的フォルダーを自動的に検索します (そのため、間違ったフォルダー名を書かないでください。そうしないと、django がフォルダーを見つけることができなくなります

2。別の方法:すべてのアプリ ファイルの外側にパブリック フォルダーを作成することです。一部の静的ファイルは特定のアプリに固有ではないため、管理を容易にするためにそれらをパブリック フォルダーに配置できます (パブリック フォルダーの作成は単に簡単です)。 -管理の練習ですが、その必要はありません。

app はアプリ間で静的ファイルを適用できます。最終的にはすべての静的ファイルが STATIC_ROOT に存在するためです) そこで問題となるのは、それをどのように作成するかです

Django は、あなたが配置したことを知っています。いくつかの静的ファイルはアプリの外部のパブリックフォルダーにあるため、STATICFILES_DIRS を設定する必要があります

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

STATICFILES_DIRS は、最初に STATICFILES_DIRS で静的ファイルを探し、次にアプリの静的フォルダー内の各検索に移動するように django に指示します ( Django は遅延的な方法で静的ファイルを検索することに注意してください。最初のファイルが見つかると検索が停止します)

3.STATIC_URL


これまでのところ、静的ファイルのメカニズムは動作できますが、直接アクセスできるかという疑問があります。 URL 経由でプロジェクト内の静的ファイルにアクセスできますか? 答えは間違いなく「はい」ですが、ブラウザでアクセスしているため、静的ファイルのローカル絶対アドレス (たとえば、静的ファイルのローカル アドレス) を入力できないことに注意してください。私の写真は /home/mysite/common_static/myapp/photo.png です

したがって、他の人がブラウザに直接入力することは不可能です:

http://192.168.1.2:8000/ home/mysite/common_static/ myapp/photo.png


この場合、ブラウザはエラーを報告します。そのようなページはありません

それでは、Django はどのようにしてブラウザがサーバー上の静的ファイルにアクセスできるようにするのでしょうか? 前に述べたように、ローカルに直接アクセスするのです。サーバーのアドレスは不可能なので、マッピングが必要です。Django は STATIC_URL を使用して、ブラウザーが次のような静的ファイルに直接アクセスできるようにします。次に、ブラウザーで次のように入力します。 192.168.1.2:8000/static/common_static/myapp/photo.png


そうすると、/home/mysite/common_static/myap/photo.png にアクセスするのと同じになります


したがって、ブラウザでは、プレフィックスの特定のコンテンツを使用しますSTATIC_URL 、STATIC_ROOT をマップするには、
HTTP://192.168.1.2:8000/static は、ローカル アドレスの STATIC_ROOT に相当します

関連推奨事項:

Django の STATIC_ROOT、STATIC_URL、および STATICFILES_DIRS の簡単な分析



以上がDjango学習における静的ファイルの呼び出しについて詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonと時間:勉強時間を最大限に活用するPythonと時間:勉強時間を最大限に活用するApr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:比較されたアプリケーションとユースケースPython vs. C:比較されたアプリケーションとユースケースApr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。