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

您所在的位置:网站首页 react配置静态文件路径 Django 系列篇(二):配置篇(上)

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

2023-05-05 05:23| 来源: 网络整理| 查看: 265

1. Django 有哪些配置

创建一个项目之后,会自动在项目根目录下生成一个配置文件,即:settings.py

分为运行环境和基础功能的配置,主要包含:App、中间件、模板、数据库、域名访问权限、项目路径等

2. 基本配置

基本配置包含对项目路径、域名访问、密钥、App 列表的配置。

一般来说,项目路径和密钥配置 是自动生成的,不需要进行修改配置。

其中密钥是随机生成的一个字符串,用于重要数据,包含:密码、CSRF 机制、Session 的加密处理。

调试模式在开发阶段,应设置为 True,部署上线时,应更改为:False

域名访问设置可以访问的域名列表,当 DEBUG 为 True 时,默认只能在本机浏览器访问调试;否则需要填写 ALLOWED_HOSTS,指定容许访问的域名。

# 设置可以访问的域名 # 使用 ['*'] 容许所有域名访问 ALLOWED_HOSTS = ['*']

内置 App 包含:

admin 后台管理系统auth 用户认证系统contenttypes 模型 Model 元数据sessions Session 会话,用于记录用户信息messages 消息提示功能staticfiles 静态资源查找

另外,可以通过 manage.py 命令行工具新建 App,然后在列表中进行配置。

3. 静态资源配置

静态资源指网站中不会改变的文件,主要包含:CSS 文件、JS 文件、图片等资源,配置属性有 3 种,分别是:STATIC_URL、STATICFILES_DIRS、STATIC_ROOT

STATIC_URL 代表资源路由,Django 对于静态资源,默认配置信息如下:

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

如果资源路由保持默认值,在调试模式下,项目只能识别 App 下 static 文件夹下的静态文件。

由于资源路由 STATIC_URL 的限制,实际开发过程中,其他目录的资源文件没法访问。

STATICFILES_DIRS,即资源集合

可以在 settings.py 文件内自定义静态资源文件夹列表,这些列表目录下的静态文件都可以访问到。

# settings.py # 静态资源集合 # 加入项目根目录下的static文件夹 # App下自定义的静态资源文件夹 STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), os.path.join(BASE_DIR, 'secondapp/static1')] # 三个静态文件目录下的静态文件都可以访问 # http://127.0.0.1:8000/static/1.png

STATICFILES_ROOT,即资源部署

STATICFILES_ROOT 主要收集整个项目的静态资源,然后放在一个新的文件夹内。

在项目开发阶段,Django 自动提供静态文件的代理服务,无需指定显式指定 STATICFILES_ROOT。

需要注意的是,在项目上线的时候,必须要配置 STATICFILES_ROOT,然后执行 collectstatic 指令,实现服务器和项目之间的映射

# settings.py ## 资源部署 STATIC_ROOT = os.path.join(BASE_DIR, 'static_root') # 把静态文件收集到 STATIC_ROOT中。 # python3 manage.py collectstatic

最后,通过 http://127.0.0.1:8000/static/3.png 即可以访问到媒体文件。

4. 媒体资源配置

除了静态资源,还有一些经常变动的资源,通常需要放置到媒体资源文件夹内,比如:用户头像。

媒体资源配置属性有 2 种,分别是:MEDIA_URL 和 MEDIA_ROOT

其中,MEDIA_URL 作用是配置媒体资源的路由地址,指向项目根目录下的 media 文件夹

MEDIA_ROOT 是获取 media 文件夹在当前系统的完整路径

# settings.py # 媒体资源 # 设置媒体路由地址信息 MEDIA_URL = './media/' # media文件夹的完整路径 MEDIA_ROOT = os.path.join(BASE_DIR, MEDIA_URL)

为了保证 Django 找到媒体文件,即:浏览器能访问 media 文件夹的文件,需要在 url.py 文件中,将 media 文件夹注册到 Django 项目路由设置文件中。

# 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.*)', serve, {'document_root': settings.MEDIA_ROOT}, name='media') ]

最后,通过 http://127.0.0.1:8000/media/4.png 即可以访问到媒体文件。

下篇文章将继续聊模板、数据库、中间件等配置的内容。

来源:星安果



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3