目录

目录

一.debug--TypeError: unsupported operand type(s) for /: ‘str‘ and ‘str‘,分析与解决

二.python点击run或者debug的时候出现Type ‘manage.py help <subcommand>‘ for help on a specific subcommand.

三.Django项目的settings.py文件中DEBUG参数置为False后,静态文件无法访问

四.Forbidden (Referer checking failed - no Referer.) 小程序访问djnago服务器报错referer检查未通过



一.debug--TypeError: unsupported operand type(s) for /: ‘str‘ and ‘str‘,分析与解决

在运行项目Django时候报TypeError: unsupported operand type(s) for /: ‘str’ and ‘str’,这是由于自动生成的代码中存在语法错误(在settings.py中的错误代码为 'DIRS': [BASE_DIR / 'templates']),将其修改为 'DIRS': [str.format(BASE_DIR, '/templates')],该问题原因是版本原因导致该处存在语法错误。其他的版本的pycharm创建后的目录拼接方式为:'DIRS':[os.path.join(BASE_DIR,'templates')],推荐使用第二种方法,这是使用os中的join函数进行拼接,可适应不同运行环境。

二.python点击run或者debug的时候出现Type ‘manage.py help <subcommand>‘ for help on a specific subcommand.

该问题是django项目运行需要默认参数,未添加参数直接点击run运行会报错。

其他参数添加方法类似

三.Django项目的settings.py文件中DEBUG参数置为False后,静态文件无法访问

参考博客:

关于Django setting.py 中设置DEBUG=False后静态文件无法加载_西奥斯的博客-CSDN博客

首先修改项目的setting.py文件

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/media/'
# 设置上传文件的路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

url.py中加入

from django.contrib.staticfiles.views import serve #static静态文件def return_static(request, path, insecure=True, **kwargs):return serve(request, path, insecure, **kwargs)
urlpatterns = [url(r'^static/(?P<path>.*)$', return_static, name='static'), # 添加这行
]

解释一下:我在url.py中写的return_static()的作用是代替 server() 为什么?以下是server()源码

def serve(request, path, insecure=False, **kwargs):if not settings.DEBUG and not insecure:raise Http404

server()默认情况下 insecure=False ,并且在关闭调试模式后都是 404。通过写个 return_static 函数其实与 --insecure 的选项是异曲同工的。

媒体文件的处理:

url.py中加入

from django.views.static import serve as static_serve # media媒体文件:注意这里引入的与上面的不同
urlpatterns = [url(r'^media/(?P<path>.*)$', static_serve, {'document_root': settings.MEDIA_ROOT}),
]

完整的url.py代码:
这是总路由里的 不是APP应用整的url

from django.conf import settings
from django.conf.urls import url, include
from django.contrib import admin
from imserver import urls
from django.contrib.staticfiles.views import serve #static
from django.views.static import serve as static_serve # media注意这里引入的与上面的不同def return_static(request, path, insecure=True, **kwargs):return serve(request, path, insecure, **kwargs)urlpatterns = [url(r'^admin/', admin.site.urls),url(r'^', include(urls)),url(r'^static/(?P<path>.*)$', return_static, name='static'),url(r'^media/(?P<path>.*)$', static_serve, {'document_root': settings.MEDIA_ROOT}),
]

四.Forbidden (Referer checking failed - no Referer.) 小程序访问djnago服务器报错referer检查未通过

该错误的前提是django服务器开启了CSRF安全防护机制,报错如下:

报错原因是Referer 检查失败,分析原因是发送的请求请求头虽然添加了X-CSRFtoken字段,但没有添加Referer,但查阅小程序文档发现,微信小程序的wx.request中不能添加referer字段。

因为小程序和服务器通信实际上是微信小程序-->腾讯服务器-->目标服务器,请求返回的路径刚好相反。

网络请求的 referer 是不可以设置的,格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版,版本号为devtools代表是开发工具发出的请求。

既然不能设置小程序端referer,那就要在django服务器端设置,通过查看官方文档发现settings.py中有一个参数:CSRF_TRUSTED_ORIGINS 可设置服务器信任的不需要验证的标头,所以将报错中出现的网址添加至上述参数中即可。

然后即可正常使用CSRF验证,关于小程序如何获取django服务器中的token可参考如下博客,

Django前后端分离csrf token获取方式 - 自学编程网

在请求头中添加X-CSRFToken后还需要添加cookies,这样才能正常验证。

pycharm创建django项目常见问题相关推荐

  1. pycharm创建django项目及开发初准备

    文章目录 前言 一.使用pycharm创建django项目 二.初步设置 对文件进行简单说明 设置 app的介绍和创建及设置 app的创建 第一种方式 第二种方式(本质上还是命令,但是更加智能) ap ...

  2. 老鱼Python数据分析——篇十七:使用pycharm创建django项目

    最近把基础的数据爬取和存储都学习完了,开始进行数据的显示,考虑到通用性,还是使用Web方式来显示数据吧. 所以接下来就开始django学习之路,因为django是一个免费并且强大的开源Web框架. 使 ...

  3. (一)使用pycharm创建django项目

    一.打开PyCharm,新建项目 点击创建之后,PyCharm自动帮我们创建一个虚拟环境和安装最新版的Django. 安装成功之后,我们刚才指定的目录下就多出一个mysite文件夹.打开mysite文 ...

  4. pycharm创建django项目linux部署

    大家好,我是烤鸭: pytho部署web项目比java简单一点,虽然springboot内置了tomcat. 环境: pycharm专业版python3.6 1.安装python python下载: ...

  5. 社区版pyCharm创建Django项目

    社区版pycharm功能不完整,无法直接创建django项目,所以我们可以手动创建 1.先安装django,可以在pycharm中安装,也可以使用 pip install Django 安装 2.创建 ...

  6. 使用PyCharm创建Django项目及基本配置

    https://segmentfault.com/a/1190000011576316 pycharm是个很不错的python开发工具,大大缩短了python项目的创建时间以及调试时间 在使用pyth ...

  7. pycharm创建django项目界面解释

  8. pycharm里创建django项目竟然没有django选项

    首先,我当时出现的问题是newproject创建的时候没有django的选项,查了半天发现我安装的pycharm是社区版本 目前我知道的有俩种方法 方法一:安装专业版 注册码 官网网址 :PyChar ...

  9. Django讲课笔记03:创建Django项目

    文章目录 零.本讲学习目标 一.课程导入 (一)Web框架 (二)WSGI 二.新课讲授 (一)使用内置指令创建Django项目 1.主要文件 (1)manage.py (2)init.py (3)a ...

最新文章

  1. 146亿美元!2018全球数字医疗投资创下新纪录
  2. gitbook 编辑手册
  3. client-go入门之3:解析 yaml 文件并创建 k8s 资源对象
  4. 插入排序 链表 java_JAVA单链表(多项式)直接插入排序,大家看看我的怎么不行呢...
  5. 2.1.4 进程通信
  6. aspnet网站开发实例_新手用户如何根据网站类型或应用场景选择云服务器?
  7. 统计学怎么求加权指数_我要自学生信之统计学:统计学概述(一)
  8. linux6.5进入救援模式,rhel6.5救援模式修复系统
  9. P1038-神经网络【拓扑排序】
  10. sqlmap指定cookie_sqlmap处理cookie数据
  11. CentOS/RHEL Linux安装EPEL第三方软件源
  12. CMD中文显示为乱码
  13. 基于连接跟踪机制的状态防火墙的设计与实现
  14. 【CS229 Deep Learning笔记】二. 介绍:分类问题
  15. 计算机四级网络工程师(操作系统单选)- 知识点
  16. Python内存映射文件读写
  17. 人工智能的十大应用方向是哪些?
  18. Centos6.8系统镜像下载
  19. 为啥Java程序员工资高,却很多人想转行,这4点原很现实
  20. 【破茧成蝶-用户体验设计】读书笔记

热门文章

  1. 第九章 指针 【SEARCH】
  2. Java 解二元一次方程组
  3. 红帽下安装mysql数据库_[原创]RedHat 安装MySQL数据库
  4. 百度AI 汽车识别
  5. 新手入门保姆级教程,Linux平台和手机端SDK,基于Opencv、MNN、NCNN
  6. 国内首家电子废物回收超市开业
  7. ADS1.2软件的详细安装步骤,手把手。
  8. 浏览器查看cookie过期时间
  9. 10.摆平Linux正则表达式
  10. word 批量转为pdf代码