django项目中,当配置文件分离时:
启动方式1:
硬编码写死在manage.py中:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dbmanager.settings.test")
方式2:
命令行启动时,指定对应环境:(会覆盖manage.py中的配置)
python manage.py runserver --settings=dbmanager.settings.production 0.0.0.0:8000
celery启动:
version: '2'
services:
redis-local:
image: harbor.asd.com/yw/dbm-redis:v_test_master_20190507.072141
ports:
- "6379:6379"
volumes:
- /etc/localtime:/etc/localtime:ro dbmanager:
container_name: dbmanager-service
image: harbor.asd.com/yw/dbmanager:v_pro_master_20190518.170636
working_dir: /usr/src/app/dbmanager
command:
- /bin/sh
- -c
- |
python manage.py crontab add
crond
python manage.py runserver --settings=dbmanager.settings.production 0.0.0.0:8000
ports:
- "8000:8000"
volumes:
- /etc/localtime:/etc/localtime:ro
- /data/usr/src/app/dbmanager/log:/usr/src/app/dbmanager/log:rw
depends_on:
- redis-local celery-beat:
container_name: celery-beat
image: harbor.asd.com/yw/dbmanager:v_pro_master_20190518.170636
working_dir: /usr/src/app/dbmanager
command: python manage.py celery -A dbmanager beat -l info # 需要在manage.py文件中指定os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dbmanager.settings.test") 配置环境,celery启动就可以找到对应环境启动,无需命令行指定配置文件环境
volumes:
- /etc/localtime:/etc/localtime:ro
depends_on:
- redis-local celery-worker:
container_name: celery-worker
image: harbor.asd.com/yw/dbmanager:v_pro_master_20190518.170636
working_dir: /usr/src/app/dbmanager
command: python manage.py celery -A dbmanager worker -l info
volumes:
- /etc/localtime:/etc/localtime:ro
- /data/usr/src/app/dbmanager/slowlogs:/data/slowlogs:rw
depends_on:
- redis-local celery-flower:
container_name: celery-flower
image: harbor.asd.com/yw/dbmanager:v_pro_master_20190518.170636
working_dir: /usr/src/app/dbmanager
配置文件拆分后,django启动报错:mproperlyConfigured: The SECRET_KEY setting must not be empty.错误原因:manage.py中米有settigs的路径没有配置正确,导致执行的时候访问不到settings.py,所以报错解决办法:在manage.py中添加具体的配置文件即可if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings.dev")