一、无法上传较大文件包
>> 解决方法:
在setting文件中加入以下配置:
#限制上传最大的文件大小为200M
FILE_UPLOAD_MAX_MEMORY_SIZE = 200*1024*1024
DATA_UPLOAD_MAX_MEMORY_SIZE = 200*1024*1024
二、配置多个数据库
1、创建数据库路由文件,并在setting文件中指定
2、数据库路由文件内容:
class appRouter(object): # 配置meetMysql的路由,去连接mysql数据库
"""
A router to control all database operations on models in the app02 application.
"""
def db_for_read(self, model, **hints):
"""
Attempts to read app02 models go to hvdb DB.
"""
if model._meta.app_label == 'employMysql': # app name(如果该app不存在,则无法同步成功)
return 'employMysql' # hvdb为settings中配置的database节点名称,并非db name。dbname为testdjango
return None
def db_for_write(self, model, **hints):
"""
Attempts to write app02 models go to hvdb DB.
"""
if model._meta.app_label == 'employMysql':
return 'employMysql'
return None
3、DAO层编写时指定“app_label”
三、Django时间配置
>>问题:Django默认使用协调世界时(又称世界统一时间,简称UTC),使程序执行时使用了UTC时区时间,会导致log文件里面记录的时间比当前时间(北京时间)慢8小时。
>>解决:在settings文件中,修改为TIME_ZONE = 'Asia/Shanghai',注释掉USE_TZ = True
四、Django使用Redis集群
django访问Redis单机版跟Redis集群 需要使用不同的 settings文件配置。参考:django2.0.6 连接使用redis集群 - September· - 博客园
1、安装django-cluster-redis包:
pip install django-redis # 注意 django-redis版本需要 >= 4.7.0
pip install django-cluster-redis
2、在django项目中的settings文件中配置:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': [
'redis://10.248.XXX.XXX:6379/',
], # 格式为 redis://IP:PORT/db_index,数据库编号可为空,默认为0号
'OPTIONS': {
'REDIS_CLIENT_CLASS': 'rediscluster.RedisCluster',
'CONNECTION_POOL_CLASS': 'rediscluster.connection.ClusterConnectionPool',
'CONNECTION_POOL_KWARGS': {
'skip_full_coverage_check': True # AWS ElasticCache has disabled CONFIG commands
}
}
}
}