小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Django 系列篇(二):配置篇(上)

 AirPython 2021-10-28

系列導(dǎo)讀

01. Django 系列篇(一):Hello World!

1. Django 有哪些配置

創(chuàng)建一個(gè)項(xiàng)目之后,會(huì)自動(dòng)在項(xiàng)目根目錄下生成一個(gè)配置文件,即:settings.py

分為運(yùn)行環(huán)境和基礎(chǔ)功能的配置,主要包含:App、中間件、模板、數(shù)據(jù)庫(kù)、域名訪問(wèn)權(quán)限、項(xiàng)目路徑等

2. 基本配置

基本配置包含對(duì)項(xiàng)目路徑、域名訪問(wèn)、密鑰、App 列表的配置。

一般來(lái)說(shuō),項(xiàng)目路徑和密鑰配置 是自動(dòng)生成的,不需要進(jìn)行修改配置。

其中密鑰是隨機(jī)生成的一個(gè)字符串,用于重要數(shù)據(jù),包含:密碼、CSRF 機(jī)制、Session 的加密處理。

調(diào)試模式在開(kāi)發(fā)階段,應(yīng)設(shè)置為 True,部署上線時(shí),應(yīng)更改為:False

域名訪問(wèn)設(shè)置可以訪問(wèn)的域名列表,當(dāng) DEBUG 為 True 時(shí),默認(rèn)只能在本機(jī)瀏覽器訪問(wèn)調(diào)試;否則需要填寫(xiě) ALLOWED_HOSTS,指定容許訪問(wèn)的域名。

# 設(shè)置可以訪問(wèn)的域名
# 使用 ['*'] 容許所有域名訪問(wèn)
ALLOWED_HOSTS = ['*']

內(nèi)置 App 包含:

  • admin  后臺(tái)管理系統(tǒng)

  • auth  用戶認(rèn)證系統(tǒng)

  • contenttypes  模型 Model 元數(shù)據(jù)

  • sessions  Session 會(huì)話,用于記錄用戶信息

  • messages  消息提示功能

  • staticfiles  靜態(tài)資源查找

另外,可以通過(guò) manage.py 命令行工具新建 App,然后在列表中進(jìn)行配置。

3. 靜態(tài)資源配置

靜態(tài)資源指網(wǎng)站中不會(huì)改變的文件,主要包含:CSS 文件、JS 文件、圖片等資源,配置屬性有 3 種,分別是:STATIC_URL、STATICFILES_DIRS、STATIC_ROOT

STATIC_URL 代表資源路由Django 對(duì)于靜態(tài)資源,默認(rèn)配置信息如下:

# settings.py
# Static files (CSS, JavaScript, Images)
# https://docs./en/2.0/howto/static-files/

STATIC_URL = '/static/'

如果資源路由保持默認(rèn)值,在調(diào)試模式下,項(xiàng)目只能識(shí)別 App 下 static 文件夾下的靜態(tài)文件。

由于資源路由 STATIC_URL 的限制,實(shí)際開(kāi)發(fā)過(guò)程中,其他目錄的資源文件沒(méi)法訪問(wèn)。

STATICFILES_DIRS,即資源集合

可以在 settings.py 文件內(nèi)自定義靜態(tài)資源文件夾列表,這些列表目錄下的靜態(tài)文件都可以訪問(wèn)到。

# settings.py
# 靜態(tài)資源集合
# 加入項(xiàng)目根目錄下的static文件夾
# App下自定義的靜態(tài)資源文件夾
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),
                    os.path.join(BASE_DIR, 'secondapp/static1')]

# 三個(gè)靜態(tài)文件目錄下的靜態(tài)文件都可以訪問(wèn)
# http://127.0.0.1:8000/static/1.png

STATICFILES_ROOT,即資源部署

STATICFILES_ROOT 主要收集整個(gè)項(xiàng)目的靜態(tài)資源,然后放在一個(gè)新的文件夾內(nèi)。

在項(xiàng)目開(kāi)發(fā)階段,Django 自動(dòng)提供靜態(tài)文件的代理服務(wù),無(wú)需指定顯式指定 STATICFILES_ROOT。

需要注意的是,在項(xiàng)目上線的時(shí)候,必須要配置 STATICFILES_ROOT,然后執(zhí)行 collectstatic 指令,實(shí)現(xiàn)服務(wù)器和項(xiàng)目之間的映射

# settings.py
## 資源部署
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')

# 把靜態(tài)文件收集到 STATIC_ROOT中。
# python3 manage.py collectstatic

最后,通過(guò) http://127.0.0.1:8000/static/3.png 即可以訪問(wèn)到媒體文件。

4. 媒體資源配置

除了靜態(tài)資源,還有一些經(jīng)常變動(dòng)的資源,通常需要放置到媒體資源文件夾內(nèi),比如:用戶頭像。

媒體資源配置屬性有 2 種,分別是:MEDIA_URL MEDIA_ROOT

其中,MEDIA_URL 作用是配置媒體資源的路由地址,指向項(xiàng)目根目錄下的 media 文件夾

MEDIA_ROOT 是獲取 media 文件夾在當(dāng)前系統(tǒng)的完整路徑

# settings.py
# 媒體資源
# 設(shè)置媒體路由地址信息
MEDIA_URL = './media/'
# media文件夾的完整路徑
MEDIA_ROOT = os.path.join(BASE_DIR, MEDIA_URL)

為了保證 Django 找到媒體文件,即:瀏覽器能訪問(wèn) media 文件夾的文件,需要在 url.py 文件中,將 media 文件夾注冊(cè)到 Django 項(xiàng)目路由設(shè)置文件中。

# urls.py
from django.conf import settings
from django.contrib import admin
from django.urls import path, re_path
# 將media文件夾添加路由地址
from django.views.static import serve

from secondapp.views import index

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

最后,通過(guò) http://127.0.0.1:8000/media/4.png 即可以訪問(wèn)到媒體文件。

下篇文章將繼續(xù)聊模板、數(shù)據(jù)庫(kù)、中間件等配置的內(nèi)容。

留言送書(shū)

活動(dòng)介紹走心留言,直接送書(shū)
今日贈(zèng)書(shū):《Git從入門(mén)到精通》


今日留言主題

說(shuō)說(shuō)最近遇到的編程問(wèn)題或新學(xué)的一個(gè)小技能?

THANDKS

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多