django网站搭建常用的一些代码

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请求是其他请求可以继续执行。

posted @ 2017-05-24 10:22  菲菲菲菲菲常新的新手  阅读(223)  评论(0编辑  收藏  举报