导读:很多朋友问到关于django怎么配置文件的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
Django中配置Gunicorn
Gunicorn是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,移植至Ruby的独角兽(Unicorn)项目,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。
Django自带的简易服务器,它是一个纯Python写的轻量级的WEB服务器,但它是为了开发而设计的,不适合在生产环境中部署。
在Django中配置gunicorn,适合高并发的生产环境。
在settings.py添加gunicorn。
其中access_log_format选项的变量含义如下:
accesslog、errorlog日志文件可以写到文件,也可以标准输出到屏幕。
以gunicorn.conf.py配置文件启动gunicorn
也可以直接启动
or
Dockerfile文件
输出:
python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件
在Django项目开发中,不能像正常web开发一样通过 'imgs/bg.jpg' 访问本地静态文件,需要做一些配置,才能实现静态文件的访问。
一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存放css、img、js等静态文件。
二、项目配置
1、打开settings.py,在底部添加:
2、打开urls.py,在 urlpatterns 中添加:(注意,如果你在blog目录下也建立了urls.py,那么就得在blog/urls.py中做修改。别忘了import settings):
(不过我经过实测,不加这一个,也可以完成静态文件的访问)
3、在html模板最上面添加:
然后在需要的地方按照这个格式进行调用,如:
最后重新运行项目,img等本地静态文件就可以被django找到了,这时模板对应的页面就可以显示使用img等文件了。
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 1.9 怎么配置静态文件
想把以前的一个asp.net网站移植到django上,发现django对静态资源似乎支持的不好,不能直接根据相对路径查找,要做一些配置,找了很多解决方案,整理如下:
1、django对静态资源的配置是跟版本有关的!!!切记!!!1.3以前的和以后的配置不太一样!!!下面仅针对Django1.9;
2、settings.py中的installed
apps
要包含'django.contrib.staticfiles';
3、settings.py中的STATIC_URL就是app目录下的静态文件所在文件夹的相对路径,默认为/static/,可以自定义;
4、调用时用如下形式:
{%
load
static
%}
img
src="{%
static
"my_app/myexample.jpg"
%}"
alt="My
image"/
导入js,img等静态文件后报错:
File
"D:\Python27\lib\mimetypes.py",
line
249,
in
enum_types
ctype
=
ctype.encode(default_encoding)
#
omit
in
3.x!
UnicodeDecodeError:
'ascii'
codec
can't
decode
byte
0xb0
in
position
1:
ordinal
not
in
range(128)
[27/Dec/2015
15:26:32]
"GET
/static/assets/img/nextPage_small_grey.jpg
HTTP/1.1"
500
59
找到关键报错文件mimetypes.py,百度了一下,找到了解决方案:在Python安装目录下的lib/site-packages中添加一个文件sitecustomize.py,内容为
import
sys
sys.setdefaultencoding("cp1251")
我设置的编码格式为utf-8,不知道其他格式是否也可以。重启运行,成功。
「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 文件删掉!!
但是这样就会有个问题,你会发现之前好好的网页我们访问不了了,模板找不到!
这是因为之前的配置文件中,路径问题,因为我们原来的配置文件是在同名目录下,而我们现在将配置文件拆分为一个新的包,所以还要上一级目录才是我们需要的:
结语:以上就是首席CTO笔记为大家整理的关于django怎么配置文件的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~