Django基础(二)Django配置信息——资源文件配置、媒体资源文件

Django配置信息

Django配置文件settings.py:用于配置整个网站的环境和功能。

核心配置:项目路径、密钥配置、域名访问权限、App列表、中间件、资源文件、模板配置、数据库的连接方式。

资源文件配置

先建4个文件夹,放一些图片进去,名字如图

Django基础(二)Django配置信息——资源文件配置、媒体资源文件

这里有两个static文件,系统默认的是index下的static文件

Django基础(二)Django配置信息——资源文件配置、媒体资源文件

静态资源文件

在settings.py文件配置静态文件信息 ,添加以下代码119行——123行

  1 """
  2 Django settings for MyDjango project.
  3 
  4 Generated by 'django-admin startproject' using Django 3.2.9.
  5 
  6 For more information on this file, see
  7 https://docs.djangoproject.com/en/3.2/topics/settings/
  8 
  9 For the full list of settings and their values, see
 10 https://docs.djangoproject.com/en/3.2/ref/settings/
 11 """
 12 import os
 13 from pathlib import Path
 14 
 15 # 项目目录的绝对路径。主要通过os模块读取当前项目在计算机系统的具体路径。
 16 # 创建项目时系统自动生成,一般不用改。
 17 BASE_DIR = Path(__file__).resolve().parent.parent
 18 
 19 # 密钥配置。用于重要数据的加密处理,提高项目的安全性。
 20 # 密钥主要用于用户密码(Auth认证系统,将用户密码加密)、CSRF机制(表单提交,防窃取用户信息制造恶意请求)和会话Session(存放在Cookie中)等数据加密。
 21 # 创建项目时系统自动生成随机值,一般不用改。
 22 SECRET_KEY = 'django-insecure-70+4nbazxyc#v6l5axu=l29yf-(69)-8&jo4*wu=t^i2vt$_71'
 23 
 24 # 调试模式,开发阶段为True,项目部署上线就要改为False,否则会泄露项目相关信息。
 25 DEBUG = True
 26 
 27 # 域名访问权限。设置可访问的域名,当DEBUG = True,ALLOWED_HOSTS = []空列表时,项目只允许localhost在浏览器访问。
 28 # 当DEBUG = False,ALLOWED_HOSTS = 必填,否则程序无法启动。如果要所有域名都可以访问可设为ALLOWED_HOSTS = [‘*’]
 29 ALLOWED_HOSTS = []
 30 
 31 # App列表
 32 INSTALLED_APPS = [
 33     'django.contrib.admin',  # 内置的后台管理系统
 34     'django.contrib.auth',  # 用户认证系统
 35     'django.contrib.contenttypes',  # 记录项目中所有model元数据(orm框架)
 36     'django.contrib.sessions',  # 会话功能,标识当前访问网站用户身份,记录相关用户信息
 37     'django.contrib.messages',  # 消息提示功能
 38     'django.contrib.staticfiles',  # 查找静态资源路径
 39     'index'  # 在项目中创建了app,就必须在这列表里添加app名称
 40 ]
 41 
 42 MIDDLEWARE = [
 43     'django.middleware.security.SecurityMiddleware',
 44     'django.contrib.sessions.middleware.SessionMiddleware',
 45     'django.middleware.common.CommonMiddleware',
 46     'django.middleware.csrf.CsrfViewMiddleware',
 47     'django.contrib.auth.middleware.AuthenticationMiddleware',
 48     'django.contrib.messages.middleware.MessageMiddleware',
 49     'django.middleware.clickjacking.XFrameOptionsMiddleware',
 50 ]
 51 
 52 ROOT_URLCONF = 'MyDjango.urls'
 53 
 54 TEMPLATES = [
 55     {
 56         'BACKEND': 'django.template.backends.django.DjangoTemplates',
 57         'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 设置模板文件目录
 58         'APP_DIRS': True,
 59         'OPTIONS': {
 60             'context_processors': [
 61                 'django.template.context_processors.debug',
 62                 'django.template.context_processors.request',
 63                 'django.contrib.auth.context_processors.auth',
 64                 'django.contrib.messages.context_processors.messages',
 65             ],
 66         },
 67     },
 68 ]
 69 
 70 WSGI_APPLICATION = 'MyDjango.wsgi.application'
 71 
 72 # Database
 73 # https://docs.djangoproject.com/en/3.2/ref/settings/#databases
 74 
 75 DATABASES = {
 76     'default': {
 77         'ENGINE': 'django.db.backends.sqlite3',
 78         'NAME': BASE_DIR / 'db.sqlite3',
 79     }
 80 }
 81 
 82 # Password validation
 83 # https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
 84 
 85 AUTH_PASSWORD_VALIDATORS = [
 86     {
 87         'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
 88     },
 89     {
 90         'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
 91     },
 92     {
 93         'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
 94     },
 95     {
 96         'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
 97     },
 98 ]
 99 
100 # Internationalization
101 # https://docs.djangoproject.com/en/3.2/topics/i18n/
102 
103 # LANGUAGE_CODE = 'en-us'#后台管理中的本地化语言,中文:zh-hans
104 LANGUAGE_CODE = 'zh-hans'
105 
106 # TIME_ZONE = 'UTC' 使用国际标准时间UTC:
107 # 所有时间在存入数据库前,必须转换成UTC时间。当使用时区时,Django存储在数据库中的所有日期时间信息都以UTC时区为准,在后台使用有时区的datetime,前台用户使用时,在网页上翻译成用户所在的时区。
108 # 后台向数据库输入日期时间时,日期时间应该带有时区信息,如果没有,输入数据库时会有警告
109 TIME_ZONE = 'Asia/Shanghai'  # 中国时间:Asia/Shanghai
110 
111 USE_I18N = True
112 
113 USE_L10N = True
114 
115 USE_TZ = True
116 
117 # # Static files (CSS, JavaScript, Images)。
118 # # 静态资源的路由地址:通过浏览器访问Django的静态资源。查找功能由App列表——INSTALLED_APPS——staticfiles
119 STATIC_URL = '/static/'
120 # # 设置根目录的静态资源文件夹static
121 STATICFILES_DIRS = [BASE_DIR / 'static',
122                     # 设置App(index)的静态资源文件夹Mystatic
123                     BASE_DIR / 'index/Mystatic', ]
124 
125 # 资源部署:在服务器上部署项目,实现服务器和项目之间的映射。STATIC_ROOT主要收集整个项目的静态资源并存放在一个新的文件夹,由该文件夹与服务器之间构建映射关系。
126 # 项目部署上线DEBUG = False,Django不在提供静态文件代理服务,需要设置STATIC_ROOT。项目开发阶段就不需要设置,会自动提供。
127 # STATIC_ROOT=BASE_DIR/'AllStatic'
128 
129 # Default primary key field type
130 # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
131 
132 DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

运行一下python manage.py runserver 8000

STATIC_URL名字(static)要和网址名字.../static/....对应。

打开浏览器输入网址,就可以看到图片了。

Django基础(二)Django配置信息——资源文件配置、媒体资源文件

Django基础(二)Django配置信息——资源文件配置、媒体资源文件

媒体资源文件

先配置媒体资源属性,然后注册到Django里。

settings.py文件下添加以下代码

# 媒体资源配置
# 设置媒体路由地址信息
MeDIA_URL='/media/'
# 获取media文件夹的完整路径信息
MEDIA_ROOT=BASE_DIR/'media'

Django基础(二)Django配置信息——资源文件配置、媒体资源文件

Django基础(二)Django配置信息——资源文件配置、媒体资源文件

MyDjango—urls.py文件如下

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

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

 

 

上一篇:Django案例:学生信息管理


下一篇:Django 数据库操作(九)