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 ,这个请求传递到 …

Python操作Redis

一. Python连接Redis

1、连接方式

redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import redis

r = redis.Redis(host='192.168.0.110', …

Redis的持久化

Redis的持久化

Redis的持久化有两种方式:快照(RDB文件)和追加式文件(AOF文件)

  • RDB持久化方式会在一个特定的间隔保存那个时间点的一个数据快照。
  • AOF持久化方式则会记录每一个服务器收到的写操作。在服务启动时,这些记录的操作会逐条执行从而重建出原来的数据。写操作命令记录的格式跟Redis协议一致,以追加的方式进行保存。
  • Redis的持久化是可以禁用的,就是说你可以让数据的生命周期只存在于服务器的运行时间里。
  • 两种方式的持久化是可以同时存在的,但是当Redis重启时,AOF文件会被优先用于重建数据。

RDB

工作原理

  • Redis调用fork(),产生一个子进程。
  • 子进程把数据写到一个临时的RDB文件。
  • 当子进程写完新的RDB文件后,把旧的RDB文件替换掉。

优点

  • RDB文件是一个很简洁的单文件,它保存了某个时间点的Redis数据,很适合用于做备份。你可以设定一个时间点对RDB文件进行归档,这样就能在需要的时候很轻易的把数据恢复到不同的版本。
  • 基于上面所描述的特性,RDB很适合用于灾备。单文件很方便就能传输到远程的服务器上。
  • RDB的性能很好,需要进行持久化时,主进程会fork一个子进程出来,然后把持久化的工作交给子进程,自己不会有相关的I/O操作。 …

使用supervisor后台运行celery

本地使用celery测试的时候我们可以直接在不同的终端直接运行 Celery 进程,但是如果要在服务器上运行,那我们岂不是得开好几个终端?而且退出终端之后 Celery 进程也就停止了,能不能让 Celery 在后台以守护进程的方式运行呢?答案是肯定的,今天我们先介绍用 supervisor 使celery在后台运行

一、先安装supervisor

1、安装命令:

pip install supervisor

如果在沙盒环境下安装不上的话使用: …