Django Settings

include

  1. include -- from django.conf.urls import include
  2. include() 如果包含有其他url patterns 都应该使用 include

settings.py

https://docs.djangoproject.com/en/1.11/topics/settings/

  1. LANGUAGE_CODE = 'zh_cn'
  2. TIME_ZONE = 'Asia/Shanghai'
  3. 如果设置 DEBUG = False, 则 需要设置 ALLOWED_HOSTS = ['www.example.com']
  4. DEFAULT_FROM_EMAIL = 'webmaster@example.com'
  5. DJANGO_SETTINGS_MODULE -- 环境变量,其值应该是一个python模块路径,例如 mysite.settings,而且这个文件应该在python导入搜索路径上(import search path)
    • 当使用 django-admin开发服务器可以这样设置DJANGO_SETTINGS_MODULE的值:
      # Unix Bash Shell
      export DJANGO_SETTINGS_MODULE=mysite.settings
      django-admin runserver
      
      # Windows Shell
      set DJANGO_SETTINGS_MODULE=mysite.settings
      django-admin runserver
      
      # 或者直接使用 --settings参数
      django-admin runserver --settings=mysite.settings
      
    • 在其他服务器上(mod_wsgi)
      # 例如在wsgi.py文件中可以这样写
      import os
      os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
      
    • 如果没有任何设置文件,则默认这是为django/conf/global_settings.py
    • 可以使用 python manage.py diffsettings查看当前设置与默认设置的区别,具体查看
    • 在python代码中使用settings
      # 正确的做法
      from django.conf import settings
      
      if settings.DEBUG:
          # Do something
      
      # settings是一个object,所以以下的做法是错的:
      from django.conf.settings import DEBUG
      
      # 不要在python代码中改变settings,即只读不写,以下为错误示范
      from django.conf import settings
      
      settings.DEBUG = True
      # 如果想改,可以这样。。。。也可以传递其他关键字参数修改设置
      settings.configure(DEBUG=True)
      
  6. APPEND_SLASH default: True
    • 设置为True时,如果请求的url不能和URlconf patterns匹配,而且该url不是以/结尾,则会被重定向到一个加了/的url,注意: 丢失
posted @ 2017-04-13 09:43  ToooooU  阅读(229)  评论(0)    收藏  举报