文章目录
设置语言和相关时间
打开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
根据官方文档,需要安装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目录
-
打开setting.py文件
-
修改
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目录
-
打开setting.py文件
-
修改
STATIC_URL
相关内容源码
STATIC_URL = '/static/'
添加路径
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'templates', THEME, "static"), ]
-
模板文件使用
{%
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'] }, }, ]
-