Django配置信息
Django配置文件settings.py:用于配置整个网站的环境和功能。
核心配置:项目路径、密钥配置、域名访问权限、App列表、中间件、资源文件、模板配置、数据库的连接方式。
资源文件配置
先建4个文件夹,放一些图片进去,名字如图
这里有两个static文件,系统默认的是index下的static文件
静态资源文件
在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里。
settings.py文件下添加以下代码
# 媒体资源配置 # 设置媒体路由地址信息 MeDIA_URL='/media/' # 获取media文件夹的完整路径信息 MEDIA_ROOT=BASE_DIR/'media'
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'), ]