导读:今天首席CTO笔记来给各位分享关于django如何配置文件的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
「Django框架」-拆分配置文件settings
使用 Django 命令生成一个项目的基本结构时,配置信息默认保存在和项目目录同名的目录下的 settings.py 文件里, 在实际的开发中,对于一个项目而言,这样往往是不合适的,需要将 settings 配置文件拆分为几个文件, 线上和线下都会使用的文件放置到 base.py 文件里,线上的放置在 product.py 文件里,开发测试的文件放置在 develop.py 文件里。这样功能划分就明确了,方便我们线上线下的调试。
1)在项目同名目录下,创建一个 settings 的包(目录下含 __init__.py 的文件夹)。
2)在 settings 的包中分别新建3个文件:公共基础 base.py (用于配置 Django 默认生成配置文件), develop.py (用于开发环境)、 product.py (用于生产环境)。
3)将原来的 settings.py 的内容复制到 base.py 文件中。
4)确认目录OK后,我们需要修改 base.py 中的时区和语言配置:
如果有类似公共部分需要修改的,则在 base.py 中修改即可,例如注册子应用之类的,在此就不一一举例。。
5)之后,对于线上线下不同部分,我们只要导入 base.py 模块,再针对不同部分进行修改即可,例如线上线下对接不同的测试数据库,我们则可以修改数据库连接:
6)修改 manage.py 文件, Django 使用自带服务启动时需要知道 settings 文件的路径。
7)到上生产的时候,使用 asgi.py ( Django3.x 中)或 wsgi.py ( Django2.x 以下版本),则可以更改生产配置文件的路径:
以上又有个问题,如果线上线下环境切换,又要改动代码, 我们可以通过设置系统环境变量来动态获取,避免修改代码:
这样通过读取系统环境变量中的 LIPIN_PROFILE 来控制 Django 加载不同的 settings 文件。
这样可以将原来的 settings.py 文件删掉!!
但是这样就会有个问题,你会发现之前好好的网页我们访问不了了,模板找不到!
这是因为之前的配置文件中,路径问题,因为我们原来的配置文件是在同名目录下,而我们现在将配置文件拆分为一个新的包,所以还要上一级目录才是我们需要的:
Django中静态文件之各个配置详解
2. STATIC_ROOT :这个是配置静态文件存放目录,另外一个作用就是运行收集静态文件的命令(关于命令的部分后面会讲)时,最终静态文件收集存放的位置,注意, 这个配置只会在debug=false时生效(生产环境) (至于为什么之后会讲)。
4. STATICFILES_DIRS :在实际项目开发中,如果我们的静态文件存放在一个或多个目录时,可以定义一个列表,用于存储静态文件,django默认配置并没有这个配置,如果需要,请自己定义,当项目下存在一个或多个静态资源的目录时,非常适合这样定义。注意, 这个配置只在debug=true时生效(开发环境)
8. templates :定义HTML模板文件存放目录,如果你用的是pycharm的IDE的话,在创建项目时,可以根据配置自动创建一个templates目录,pycham会自动帮我们配置,如果没有配置,就需要手动创建,当然,你也可以选择自定义该目录
9. collectstatic :在项目部署时,我们还要进行静态文件的收集,如果手动收集静态文件的话,工程量无疑很大,而且部署后,debug肯定要改为 debug=false ,这时如果不进行静态文件的收集的话,django自带的部分,如admin后台就会出现CSS无法加载的问题,因此,项目部署前,这个操作是是必须的。
django的 django.contrib.staticfiles 提供了一个收集静态文件的命令: python manage.py collectstatic ,执行该命令后,会将静态文件收集到配置好的 STATIC_ROOT 中
Django媒体文件URL的配置
在Django中经常需要配置图片、视频等表态文件,在配置时较为复杂,这里纪录一下:
在文件尾部加入以下目录,用于存放上传的文件
在models中写上image字段其中 %Y 代表年, %m 代表月, blank=True 代表可以为空。当上传文件时,代表上传到image目录下,以当前年月子目录的文件夹中。
image = models.ImageField(upload_to="image/%Y/%m", blank=True)
其中src中的{{ MEDIA_URL }}会在模板中渲染为第一步中的 /media/
如果您想在模板中使用{{MEDIA_URL}},请在“模板”的“context_processors”选项中添加 django.template.context_processors.media 。
通过以上步骤,基本上可以在前端正常渲染出结果了,但还需要给图片添加一个URL以正常显示。
第一行为引入静态文件的serve,第二行为导入工程配置文件中的 MEDIA_ROOT
在url中加入:
结语:以上就是首席CTO笔记为大家介绍的关于django如何配置文件的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。