1:傳回操作成功的json資料
def response_success(message, data=None, data_list=[]):
return HttpResponse(json.dumps({
'code': ,#code由前後端配合指定
'message': message,#提示資訊
'data': data,#傳回單個對象
'dataList': data_list#傳回對象數組
}), 'application/json')
2:傳回操作失敗的json資料
def response_failure(message, data=None, data_list=[]):
return HttpResponse(json.dumps({
'code': ,
'message': message,
'data': data,
'dataList': data_list
}), 'application/json')
3:攔截非get請求
def get(func):
def in_fun(request):
if request.method == 'GET':
return func(request)
else:
return response_failure('not get request')
return in_fun
4:攔截非post請求
def post(func):
def in_fun(request):
if request.method == 'POST':
return func(request)
else:
return response_failure('not post request')
return in_fun
5:參數檢查
def params(*args):#接收傳入的字段
def check_params(func):
def in_fun(request):
p = []
for val in args:#周遊用戶端請求是否包含字段
param = request.POST.get(val, )
if param == :#若不包含則傳回錯誤
return response_failure('need param %s' % val)
else:
p.append(param)#若包含則傳入數組傳回給被裝飾的函數
return func(request, p)
return in_fun
return check_params
6:md5加密
def md5(s):
m = hashlib.md5(s.encode('utf8'))
return m.hexdigest()
7:儲存檔案
def save_file(file, save_path='photo'):
destination = open(os.path.join(save_path, file.name), 'wb+')
for chunk in destination:
destination.write(chunk)
destination.close()
這裡傳入的file是request.FILES對象,save_path是圖檔儲存路徑
@get和@post使用
1:在views模闆下編寫測試函數(記得在urls.py檔案中進行相應配置)
2:将剛剛封裝的函數所在模闆引入views.py
3:使用@get進行攔截
@get
def test(request):
return response_success('test')#傳回json
- 4:使用postman進行測試
post請求

get請求
@post的用法如上
@params,response_success,response_failure使用
@post
@params('account', 'password')
def login(request, args):
user = BUser.objects.filter(account=args[], password=md5(args[]))
if len(user) == :
return response_failure('account or password error')
u = model_to_dict(user[])
u['password'] = ''
request.session[config.LOGIN] = config.TAG_LOGIN
return response_success('login success', u)
1:@params中傳入你所需的字段
2:args是一個list,list裡面的資料按字段順序排列
3:如上面的例子args[0]為account字段的值args[1]是password字段的值
4:從資料庫查詢出來的結果要用model_to_dict方法才能傳回json格式字元串
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/weixin_35055467/article/details/77450117