Django 教程之setting技巧

设置语言和相关时间

打开setting.py文件

修改如下设置

源码:
LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True
修改为:
LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

说明

# LANGUAGE_CODE 设置语言,zh-Hans设置简体中文,zh-Hant是繁体中文
# TIME_ZONE 设置时区
# USE_I18N: 国际化,需单独配置,按需学习或默认即可
	18表示Internationalization这个单词首字母I和结尾字母N之间的字母有18个。I18N就是				Internationalization(国际化)的意思。
# USE_L10N: 本地化,按需学习或默认即可
# USE_TZ:True时UTC时间,建议False
	启用 USE_TZ = True 后,处理时间方面,有两条 “黄金法则”:
    1. 保证存储到数据库中的是 UTC 时间;
    2. 在函数之间传递时间参数时,确保时间已经转换成 UTC 时间;

切换Sqlite3 数据库为MySQL

安装MySQL

参考:

配置MySQL

创建数据库名和用户名

NAME是数据库名字,需要用命令创建utf8编码数据库

CREATE DATABASE <dbname> CHARACTER SET utf8;

mysql>CREATE DATABASE blog CHARACTER SET utf8;
Query OK, 1 row affected (0.03 sec)

安装 mysqlclient

目的:关联Python和MySQL

参考:Django关于Databases的官方文档

根据官方文档,需要安装mysqlclient

pip install mysqlclient

配置settings.py

目的:关联Django和MySQL

源码:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

修改为

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'py3django111wei',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '192.168.1.156',
        'PORT': '3306',
        # 避免映射数据库时出现警告
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4',
        },
    }
}

为什么要加上’OPTIONS’呢,因为在后面添加url路由之后访问相关app,会出现如下警告:

WARNINGS:
?: (mysql.W002) MySQL Strict Mode is not set for database connection ‘default’
HINT: MySQL’s Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you
activate it. See: https://docs.djangoproject.com/en/1.11/ref/databases/#mysql-sql-mode

配置templates目录

  1. 打开setting.py文件

  2. 修改TEMPLATES内容

    源码

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            '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',
                ],
            },
        },
    ]
    

    添加THEME标签和DIRS路径

    THEME = 'default'
    
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates', THEME, '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',
                ],
            },
        },
    ]
    

    APP_DIRS是控制搜索APP内TEMPLATES的开关

    配置static目录

    1. 打开setting.py文件

    2. 修改STATIC_URL相关内容

      源码

      STATIC_URL = '/static/'
      

      添加路径

      STATICFILES_DIRS = [
          os.path.join(BASE_DIR, 'templates', THEME, "static"),
      ]
      
    3. 模板文件使用 {% load staticfiles %} 运行

    不加入load staticfiles来使用静态文件

    源码

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates', THEME, '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',
                ],
            },
        },
    ]
    

    加入

    'builtins': ['django.templatetags.static']
    

    修改后

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates', THEME, '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',
                ],
            'builtins': ['django.templatetags.static']
            },
        },
    ]
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值