Django3.0开发“'X-Frame-Options' to 'deny'”报错

一、起因

在使用Django3.0开发博客的过程中出现报错

Refused to display 'URL' in a frame because it set 'X-Frame-Options' to 'deny' …

Django URL重定向的3种方法

利用django开发web应用, 我们经常需要进行URL重定向,有时候还需要给URL传递额外的参数。比如用户添加文章完成后需要转到文章列表或某篇文章详情。因此熟练掌握HttpResponseDirect, redirect和reverse这三种方法对于Django Web开发是至关重要。

一. HttpResponseDirect方法

HttpResponseRedirect是django首选的URL重定向方法,在django.http模块里。该方法的第一个参数是必要的,是用来重定向的URL地址。这个URL可以是完整的链接(如:http://www.baidu.com),也可以是一个不包含域名的静态链接(如 /index/)。

我们下面以新闻博客(blog)为例来看看如何使用HttpResponseDirect方法。假如我们有如下3个urls, 一个展示文章,一个添加文章,一个展示文章详情。我们需要使用该方法在视图中实现两种URL重定向:

  • 转向不含参数的URL: 用户添加文章完成后转向文章列表( …

Django自定义中间件

一. 什么是中间件

中间件是一个钩子框架,它们可以介入Django 的请求和响应处理过程。 它是一个轻量级、底层的插件系统,用于在全局修改Django 的输入或输出

我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 …

为Django的manage.py添加自定义命令

有时候会有这样的需求,为django执行一些定时任务,比如通知搜索引擎,例如百度,提交网站的一些地址给他们,通过为django的manage.py添加自定义命令可以很容易的解决这个问题。下面介绍下如何添加。

首先需要在创建好的app应用的根目录创建文件夹名为management的目录,然后继续在该目录创建commands的目录,并在两个目录中都要创建__init__.py的python文件。 目录创建好之后继续在commands的目录中添加notify_baidu.py文件,文件名将会是manage.py的命令名。目录结构如下:

示例图片

代码内容大概如下:

# -*- coding: …

Django中使用Q构建复杂查询

一般我们在Django程序中查询数据库操作都是在QuerySet里进行进行,随着我们的程序越来越复杂,查询的条件也跟着复杂起来,这样简单的通过一个filter()来进行查询的条件将导致我们的查询越来越长。当我们在查询的条件中需要组合条件时(例如两个条件“且”或者“或”)时。我们可以使用Q()查询对象。

比如有以下表:

from django.db import models

class Blog(models.Model):
    text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('published_date')

    def …