前言

django作为python中的重型web框架,在开始学习django的时候,一定是非常痛苦的,连文件配置都搞不清,更不要提写功能了,今天这篇文章主要讲解一下django的配置问题

settings

settings作为django的配置文件,其中的东西可以说是面面俱到的影响着整个项目,这个文件不需要创建,在你创建项目的时候,他自然会被创建,那让我们来看一下,这个settings中,可以配置什么

  • SECRET_KEY,每个django项目都会有自己的密钥,方便了使用jwt加密等

  • DEBUG,这个呢,是开发人员的DEBUG模式,也就是开发模式,正常情况下,在项目上线之前,要把这个改为False,否则一旦你网站全部的url泄露出去,那后果可是不堪设想

  • ALLOWED_HOSTS,这个是为了限定请求中的host值,以防止黑客构造包来发送请求,只有在列表中的host才能访问

    注意,本人在这里强烈建议不要使用*通配符去配置,另外当DEBUG设置为False的时候,必须配置这个配置,否则会抛出异常。

    后面所跟的属性值是一个字符串列表值,这个字符串列表值表示当下这个Django站点可以提供的host/domain(主机/域名)。这是一种安全措施,通过使用伪造的HTTP主机标头提交请求来防止攻击者中毒缓存并触发带有恶意主机链接的密码重置电子邮件,即使在许多看似安全的Web服务器配置下也是如此

  • INSTALLED_APPS,一般就是存放app和一些django的插件,比如跨域或者DRF

  • MIDDLEWARE:听名字就知道,这是中间件层,一些自定义的中间件也要在这里注册

  • ROOT_URLCONF,URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应,决定哟啊使用的根URLconf模块,通常,这是ROOT_URLFONF设置的值,但是如果传入的HttpRequest对象具有urlconf属性(由中间件设置),则其值将被用于代替ROOT_URLCONF设置,通俗的讲,就是你可以自定义项目入口url是哪个文件

  • TEMPLATES:模板,在做一些前后端不分离的项目时,会使用到。

  • WSGI_APPLICATION:wsgi的配置,一般不需要动

  • DATABASES:数据库,这里可以连接关系型数据库,例如Mysql,PosrgrelSQL

  • AUTH_PASSWORD_VALIDATORS:弱密码校验,这里会有四个自带的校验器,当然也可以自己写校验器,只需要按照下述格式添加进去就可以做统一校验

  • 然后剩下的这些,都是本地化的一些配置

    LANGUAGE_CODE = 'zh-hans'  # 语言,这里改为了中文
    TIME_ZONE = 'Asia/Shanghai' # 时区,改为亚洲上海即可
    USE_I18N = True
    USE_L10N = True
    USE_TZ = False  # 弃用格林威治时间
  • STATIC_ROOT,新增的,该目录下面的文件会被当成静态文件处理,与STATIC_ROOT搭配使用的还有STATIC_URL,一般默认采用/static/,用于你指定静态目录的URL。

  • STATICFILES_DIRS,制定了一个工程里面哪个目录存放了与这个工程相关的静态文件,这是一个列表

    STATIC_URL = '/static/'
    
    STATICFILES_DIRS=[
         os.path.join(BASE_DIR,'static')
    ]