美文网首页
Django源码解读—2配置文件

Django源码解读—2配置文件

作者: 卢卡Lucar | 来源:发表于2018-10-19 15:00 被阅读16次

    前面的文章中我们解读了Django的目录结构及目录中每个文件的作用,本篇文章我们就前面的内容接续拓展。在目录中我们发现了一个setting.py文件,前面我说过这个问价起到了项目相关配置作用,为项目的模块调用给了便利。


    image.png

    代码的第一行导入os模块,它是调用系统接口的模块,其作用是为了给第二行的返回脚本路径做准备。

    返回脚本路径需要注意一下几点:
    1、必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name 'file' is not defined
    2、在运行的时候如果输入完整的执行的路径,则返回.py文件的全路径如:
    python c:/test/test.py 则返回路径 c:/test ,如果是python test.py 则返回空
    3、结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合
    os.path.dirname(os.path.abspath(file)),os.path.abspath(file)返回的是.py文件的绝对路径
    这就是os.path.dirname(file)的用法,其主要总结起来有:
    1、不要已命令行的形式来进行os.path.dirname(file)这种形式来使用这个函数
    2、结合os.path.abspath()使用

    SECRET_KEY 的作用

    本质上是一个加密盐
    SECTET_KEY 在 django在加密,安全方面都有很突出的用处。json object的签名加密函数中必不可少的,密码重置,表单提交,csrf的key,session数据等等都是需要SELECT_KEY的。
    其中在session的使用中如果使用不当的话,很容易造成攻击代码被执行。

    DEBUG 调试

    这个可以开启代码的调试功能,方便我们在开发过程中发现程序的错误,一般情况下开启了调试功能,在网站运行中如果出现错误,就会Django就会把错误信息直接展示在网页中方便我们查看,但是我们在生产环境中就不用开启调试功能了,一是为了节省系统资源加速网站的运行,二是为了避免网站被攻击。

    ALLOWED_HOSTS 表试可投放的网站主机/域名列表

    这里的列表,可以现在那些域名和主机可以访问本网站,一般情况下不建议使用统配符。

    INSTALLED_APPS 插入的APP列表。

    在这个列表中目前只有Django的几个基本模块,主要包含管理系统,标准权限管理系统,ContentTypes框架,session模块,信息模块和开始文件等等。在后期的开发过程中,我们也可以向其添加我们自己的APP。这几个模块后期我还会继续解读,篇幅原因,放在后面会清晰许多。

    MIDDLEWARE 中间件

    image.png

    在Django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法。除了列表中的几个中间件之外,我们还可以创建适合自己网站的中间件。

    ROOT_URLCONF

    image.png

    它的作用是告诉DJango用了哪些模块及路径。

    TEMPLATES Django中的模板配置。

    image.png

    WSGI_APPLCATION 网关应用

    这里写了这个项目的网关应用。

    DATABASES 数据库配置

    image.png

    Databases 这里可以写上你的项目所要连接的数据库主要的参数为数据库的类型数据库的名字地址等相关的数据库参数。这里默认的数据库是sqlite3,它是一个轻量级数据库,主要用作数据测试。

    AUTH_PASSWORD_VALIDATORS 认证类型

    image.png

    这个列表中存储的是Django的用户验证类型列表,在后期的开发中也可以添加自己编写的用户验证方式。

    image.png

    程序的最后几个参数,第一个是语言选项,可以配置网站的语言,默认的语言为英文。紧接的是时区。后面的几个选项参数是一些国际化项目的标准,一般情况下都会设置为开启状态也就是默认遵守国际化标准。最后的一个参数选项,是静态文件的路径,可以自由配置。

    关于项目的配置文件就介绍到这里了,配置文件中还有一些功能的实现原理我放到后面的文章中仔细说明。下篇文章我们继续解读Django的源码中的路由。

    相关文章

      网友评论

          本文标题:Django源码解读—2配置文件

          本文链接:https://www.haomeiwen.com/subject/cfilzftx.html