Django实战1-权限管理功能实现-02:项目设置

时间:2022-11-13 18:55:53

1 模板和静态文件设置

1.1 下载模板和静态文件

  • 使用pycharm打开上节创建的项目sandboxMP, 在sandboxMP项目目录下新建两个文件夹:static和media;
  • 下载模板和静态文件(下载地址:https://pan.baidu.com/s/1LbIv2uXwSt9SZy7HwiL9wg 提取码:cn4t)
  • 将下载的文件中media、static、templates目录中的文件复制到项目对应目录

注意: 如果百度网盘中的静态文件出现无法下载问题,可以使用git工具直接克隆本节对应的tag版本 v1.02,该版本已经包含本节所有设置内容,克隆方法:

# 首先你要安装了git工具,在git bash命令行运行下面克隆命令 # 克隆完成后,你可以直接使用这个版本,也可以只拷贝这个版本中media、static和templates目录中的文件到你上节创建的项目中 git clone --branch v1.02 git@github.com:RobbieHan/sandboxMP.git 

完成以上设置后的项目文件目录结构如下:

sandboxMP/
    |-- media/                    # 文件上传目录 |-- sandboxMP/ |-- __init__.py # 空文件,python包的声明文件 |-- settings.py # 项目配置 |-- urls.py # 项目路由,用来做url声明 |-- wsgi.py # wsgi兼容接口 |-- static # 静态文件存放目录 |-- templates/ # 用来存放模板文件(html) |-- base-layer.html # 项目中弹窗页面需要继承基础模板页 |-- base-left.html # 左侧导航 |-- base-static.html # 静态文件页面,包含全局的css和javascripts |-- head-footer.html # 头部导航和底部版权信息 |-- index.html # 初始页面,后面项目会多次基于这个页面进行布局 |-- page404.html # 404页面 |-- db.sqlite3 # sqlite3数据库文件 |-- manage.py # 命令行工具,可用来运行项目、创建app

模板的继承关系:

base-static.html head-footer.html base-left.html index.html 

1.2 模板和静态文件配

设置模板访问路径

我们创建了templates用来存放模板页面,要想让Django能够顺利找到模板,还需要再settings.py配置TEMPLATES,加入:'DIRS': [os.path.join(BASE_DIR, 'templates')] 来指定一个查找模板的目录列表。

TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] 

设置静态文件访问路径

网站中用到的图片、JavaScript和CSS这些统称为静态文件,Django提供了django.contrib.staticfile来帮助我们管理它们。

我们在项目根目录下创建了一个static目录用来存放静态文件,要想使用它还需要在sandboxMP/sandboxMP/settings.py中添加如下配置:

STATIC_URL = '/static/' # 创建django项目时已经默认添加 STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] 

2 修改显示语言和时区

打开sandboxMP/sandboxMP/settings.py文件,找到LANGUAGE_CODE 修改如下:

LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = False