大西洋暖流

一切都在不完美中前行


  • 首页

  • 关于

  • 标签

  • 归档

  • 搜索

Django学习中遇到的问题

发表于 2020-03-26 | 分类于 编程 | 阅读次数:
字数统计: 597 | 阅读时长 ≈ 2

本文记录Django学习过程中遇到的奇怪问题。

settings.py设置DEBUG = False导致资源404

现象:

把project目录下settings.py文件中DEBUG设置为False,页面均可以访问,但加载css和js资源提示404。将DEBUG调为True,这些404就没有了。

原因:

关闭DEBUG模式后,Django不再提供静态文件服务。

解决:

  1. 在 python3 manage.py runserver 命令后添加 --insecure 选项使Django强制处理静态文件。

  2. 上面只是临时解决,如果采用其它方式启动服务,添加--insecure方法可能就不起作用,需要通过修改配置文件及url路由来彻底解决这个问题,步骤如下:

    a. 在settings.py文件中加上

    1
    2
    3
    4
    5
    # Setup `STATIC_ROOT` to collect all static resources from every applications
    STATIC_ROOT = os.path.join(BASE_DIR, 'blog/static')
    # Use `STATICFILES_DIRS` to store static resouces which are not used in applications, this can be not set
    STATICFILES_DIRS = [os.path.join(BASE_DIR, '/static/')]

b. 在project的urls.py文件中增加如下修改(实测在app的urls.py文件中增加如下修改也能起作用):

1
2
3
4
5
6
7
8
9
10
from django.urls import re_path
from django.views import static
from django.conf import settings
from django.conf.urls import url
urlpatterns = [
# Below 2 methods can both work
url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT }, name='static'),
# re_path('^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT }, name='static')
]

c. 执行python3 manage.py collectstatic收集静态资源文件

根据步骤a里STATIC_ROOT变量第二个参数的值决定是否执行python3 manage.py collectstatic将每一个项目里面使用的静态文件收集到STATIC_ROOT目录下

  1. 如果STATIC_ROOT变量的第二个参数如果填’static’,则需要执行python3 manage.py collectstatic,否则修改不生效;

    ‘collectstatic’命令执行成功后会在project目录下生成一个static文件夹,里面会存放admin及blog应用使用到的所有静态文件。

  2. 如果STATIC_ROOT变量第二个参数填’blog/static’(在我project下面应用程序名称是blog),不需要执行python3 manage.py collectstatic修改也能生效,但要注意不要把’blog/static’写成了’/blog/static’,否则修改不生效;

d. 特别说明

强烈建议使用步骤c中第一种方法,步骤c中方法二虽然可行,但是比较麻烦,如果project下有多个应用,就没办法配置了;而且第二种修改方法对Django Admin页面不生效,即应用程序的静态资源可以加载成功,但Admin页面的静态资源无法加载成功。

​

Django views之HttpResponse对象

发表于 2020-03-24 | 分类于 编程 | 阅读次数:
字数统计: 40 | 阅读时长 ≈ 1

最近在B站学完一套Django视频课程,整理了一份Django Views思维导图,这一张介绍Django Views里面的HttpResponse对象,整理如下:

Django views之HttpRequest对象

发表于 2020-03-24 | 分类于 编程 | 阅读次数:
字数统计: 40 | 阅读时长 ≈ 1

最近在B站学完一套Django视频课程,整理了一份Django Views思维导图,这一张介绍Django Views里面的HttpRequest对象,整理如下:

Django views基础介绍

发表于 2020-03-24 | 分类于 编程 | 阅读次数:
字数统计: 39 | 阅读时长 ≈ 1

最近在B站学完一套Django视频课程,整理了一份Django Views思维导图,这一张介绍Django Views基础内容,整理如下:

Django MySQL字符集问题

发表于 2020-03-22 | 分类于 编程 | 阅读次数:
字数统计: 876 | 阅读时长 ≈ 3

保存中文报错

在Django Adminn里编辑文章,保存中文时出现Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'body' at row 1报错。

以前使用MySQL遇到过保存中文报错情况,知道这是数据库编码集没设对的问题。

阅读全文 »
1234…16
大西洋暖流

大西洋暖流

77 日志
7 分类
155 标签
常用链接
  • 廖雪峰
  • 阮一峰
  • 王垠
  • 酷壳
  • Python之禅
  • Python入坑指南
  • Echo李金
  • Flask资源
  • Python面试题
  • HelloGitHub
© 2016 — 2025 大西洋暖流 | Site words total count: 98.0k

粤ICP备2020075576号