from functools import wraps
def check_user_login(func):
@wraps(func)
def return_wrapper(request, *args, **kwargs):
if not request.user.is_authenticated():
return render_to_response('xxx.html')
else:
return func(request, *args, **kwargs)
return return_wrapper

该函数用来检查用户是否登录,是个装饰器,使用了wraps装饰器来保证被装饰的函数函数名和属性不发生变化。使用is_authenticated()函数来判断是否登录,这是django自带的函数。如果没有登录返回一个xxx模板,可以修改。

from functools import wraps
def check_method(func):
@wraps(func)
def returned_wrapper(request, *args, **kwargs):
if request.method != 'POST':
err = u'提交方式有误'
return render_to_response('err.html', {"err": err})
else:
return func(request, *args, **kwargs)
return returned_wrapper

该函数用来检查用户提交的方式是否为POST,可能作用不大。

from django.shortcuts import HttpResponse
import json
def xxx():
result = dict()
try:
//TODO
result['ret'] = 0
result['status'] = 'success'
except Exception, e:
result['ret'] = 10000
result['status'] = 'failed'
result['message'] = str(e)
return HttpResponse(json.dumps(result), content_type="application/json")

该函数用来接收前端的jquery请求,返回一个json对象,根据ret来判断是否成功,经常同下面的jquery一起使用。

function ajax(type, url, datas, msg) {
$.ajax({
type: type,
url: url,
data: datas,
async: false,
success: function (data, status) {
if (data.ret == 0) {
alert(msg+'成功!');
          location.reload()
}
else {
alert(msg+"失败!失败原因:" + data.message);
}
},
error: function (data) {
alert(msg+"错误!错误原因:" + data);
}
});
}

一个普通的ajax请求,封装到ajax函数中,省的每次都要复制粘贴很麻烦,使用异步ajax,在执行该ajax请求是其他请求可以继续执行。

django网站搭建常用的一些代码的更多相关文章

  1. Django网站搭建(相关命令-Win10环境)

    为什么需要使用virtualenv? 虚拟环境的作用是创建一个独立的python环境,将每一个应用的环境独立开来,解决了不同应用及多版本之间的冲突问题.在开发的日常中,我们会将python及配套的应用 ...

  2. 10步写了个Django网站,正经网站···

      Django做网站只要10步,真的只有10步,不信?咱们来数数--   今天主要讲解用Pycharm编辑器搭建网站,网站功能是 实现在局域网中快速传递大文件! 比如:同事要给你个1G的文件,你丢一 ...

  3. [个人网站搭建]·Django增加评论功能(Python3)

    [个人网站搭建]·Django增加评论功能 个人主页--> https://xiaosongshine.github.io/ 个人网站搭建github地址:https://github.com/ ...

  4. Django框架搭建(windows系统)

    Django框架搭建(windows系统) 一.Django简介 开放源代码的Web应用框架,由Python语言编写,一个大而全的框架. 1.web框架介绍 具体介绍Django之前,必须先介绍WEB ...

  5. 三.基础部分+asp网站搭建

    渗透测试流程:更全面地找出服务器的问题,更倾向保护 明确目标-->信息收集-->漏洞探测-->漏洞验证-->信息分析-->获取所需-->信息整理-->形成报告 ...

  6. Apsara Clouder云计算专项技能认证:网站建设-简单动态网站搭建

    一.课程介绍 1.课程目标 了解静态网站和动态网站的区别 掌握动态网站的不同实现方式 在阿里云上如何搭建 wordPress网站以及 wordPress 网站的管理和优化 二.网站搭建的类型 1.网站 ...

  7. JS学习知我见(常用建站代码)

    <!doctype html><html><head><meta charset="utf-8"><meta name=&qu ...

  8. 十五个常用的jquery代码段【转】

    好的文章顶一个 回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: 1 // Back to top 2 $('a.t ...

  9. 十五个常用的jquery代码段

    十五个常用的jquery代码段 回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: 1 // Back to top ...

随机推荐

  1. 使用android-junit-report.jar导出单元测试报告

    Android在使用脚本编译和测试时,使用默认的testrunner不会输出文件类型的单元测试报告,每次只能分析logcat的无法直观的看到单元测试结果和报告,这给编写自动化脚本带来了不少麻烦,虽然可 ...

  2. Java线程池使用和源码分析

    1.为什么使用线程池 在多线程编程中一项很重要的功能就是执行任务,而执行任务的方式有很多种,为什么一定需要使用线程池呢?下面我们使用Socket编程处理请求的功能,分别对每种执行任务的方式进行分析. ...

  3. jquery对象与js对象

    对于已经是一个 DOM 对象,只需要用 $() 把DOM对象包装起来,就可以获得一个 jQuery 对象了,使用[index]和.get(index)可以转为DOM对象 jQuery 对象是通过 jQ ...

  4. 异常为"当IDENTITY_INSERT设置为OFF时" 解决办法

    当 IDENTITY_INSERT 设置为 OFF 时,不能向表"A" 中的标识列插入显示值. 一般来说是自增ID造成的. 因此可以在数据库insert语句前加上 SET iden ...

  5. 数学课(math)

    数学课(math) 题目描述 wzy又来上数学课了-- 虽然他很菜,但是数学还是懂一丢丢的.老师出了一道题,给定一个包含nn个元素的集合P=1,2,3,-,nP=1,2,3,-,n,求有多少个集合A⊆ ...

  6. [openmp]使用嵌套并行

    变量OMP_NESTED设置使其可以在函数中并行. #include "omp.h" #include <cstdio> #include <iostream&g ...

  7. Error-invalid project description(转)

    导入android工程时有时会出现下面错误: 按照提示,说是当前的工作空间内已经有同名的工程了,但实际是没有的. 多次碰到这种问题后,无意间找到解决办法.导入工程时,不要选择Android,而是选择G ...

  8. C#原生加密方法: System.Security.Cryptography.CryptoStream DataSet加密解密

    采用16位密钥形式加密,把数据 dataset或文本转换为二进制流,然后进行加密解密.代码如下: using System; using System.Collections.Generic; usi ...

  9. Day 1 MySQL数据库

    MySQL数据库_1 一.概述 1.数据(DATA) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算 ...

  10. javascript 获取焦点和失去焦点事件

    利用传参的方式提高方法的复用性 这里涉及到JavaScript的字符串拼接操作 </tr> <<tr height="40px"> <td> ...