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. 实用拜占庭容错算法PBFT

    实用拜占庭容错算法PBFT 实用拜占庭容错算法PBFT 96 乔延宏 2017.06.19 22:58* 字数 1699 阅读 4972评论 0喜欢 11 分布式架构遭遇的问题 分布式架构会遭遇到以下 ...

  2. Linux 必要软件的安装与配置

    主要是记录一下,免得下次重装系统后又到处搜索.. 一.必要软件的安装 JDK 下载 tar.gz:http://www.oracle.com/technetwork/java/javase/downl ...

  3. leetcode NO.349 两个数组的交集 (python实现)

    来源 https://leetcode-cn.com/problems/intersection-of-two-arrays/ 题目描述 给定两个数组,写一个函数来计算它们的交集. 例子: 给定 nu ...

  4. 如何从fragment跳到activity再从activity返回(finish()方法返回)刷新fragemnt页面

    代码改变世界 如何从fragment跳到activity再从activity返回(finish()方法返回)刷新fragemnt页面 广播方法实现Fragment页面刷新 fragment中重写onA ...

  5. 服务器提交了协议冲突。Section=ResponseHeader Detail=标头名称无效

    服务器提交了协议冲突.Section=ResponseHeader Detail=CR 后面必须是LF. 微软没有容忍不符合RFC 822中的httpHeader必须以CRLF结束的规定的服务器响应所 ...

  6. [NOI2014][bzoj3670] 动物园 [kmp+next数组应用]

    题面 传送门 思路 首先,这题最好的一个地方,在于它给出的关于$next$的讲解实在是妙极......甚至可以说我的kmp是过了这道题以后才脱胎换骨的 然后是正文: 如何求$num$数组? 这道题的输 ...

  7. python获取目录下文件夹名称

    path = '/opt' dirs = os.listdir(path) for dir in dirs: print dir

  8. 如何用jquery获得td里边的内容

    jQuery 中使用 text() 或者 html() 函数可以获取td的内容: $("td").text();   // 或者 $("td").html(); ...

  9. pat 甲级 1064. Complete Binary Search Tree (30)

    1064. Complete Binary Search Tree (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...

  10. 洛谷P2114起床困难综合征

    从高位到低位按位枚举,贪心.如果该位填1比填0结果优且填1不会超出m限制,那就填1,否则填0 /*by SilverN*/ #include<iostream> #include<c ...