FBV CBV
FBV view中定义的函数
CBV view中定义的类
在view定义CBV类要继承View这个类 先导入模板
from django.views import View
在类中可以使用
self.dispatch来查看类中逻辑处理过程
urls
url(r'^cbv_login$', views.CBV.as_view()), #as_view()是View类中的方法
在类中 django会自动识别get和post方法来让哪个函数处理对应的请求
view
class CBV(View):
def get(self,request):
self.dispatch
return render(request, 'web/login.html')
def post(self,request):
username = request.POST.get('username', False)
password = request.POST.get('password', False)
if not username or not password:
# 用户名或者密码是空
return HttpResponse('用户名密码不能为空')
else:
use_obj = UserInof.objects.filter(user=username, passwd=password)
if use_obj.first():
# 登录成功
request.session['login'] = use_obj.first().user
return redirect('/index')
else:
# 登录失败
return HttpResponse('登录失败')
serializers序列化
在一般情况下字典先
通过json.dumps转为json格式的字符串,
再通过Httpreponse用于返回给前端
但是把Queryset对象或者
Querysetlist对象放在字典了并通过
json.dumps会报错,可以使用
serializers.serialize转换后再放进字典中
先导入模块
from django.core import serializers
dic = {'data':None}
use_obj = UserInof.objects.filter(user = username, passwd = password)
#Queryset对象转化json格式在放进字典中并再转为
json格式的字符串返回到前端
json_data = serializers.serialize('json',use_obj) #‘json’指定转化为json格式 use_obj是Queryset对象
dic['data'] = json_data
return HttpResponse(json.dumps(dic))