注册与登录 接口与模板

1.利用模板创建登录或注册网页数据库栏:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

}
}


2.在myapp\urls.py中为了形目可添加标识语句:

app_name='myapp'

3.在models中添加用户表:

class user(models.Model):
'''
用户表
'''
name=models.CharField(max_length=32)
password=models.CharField(max_length=255)

# python manage.py makemigrations 生成迁移文件
# python manage.py migrate 执行迁移文件

4.函数视图:
from django.shortcuts import render
from django.views import View
from django.http import JsonResponse,HttpResponse
from . models import * 将models中的所有导入到views中

def register(request):  (模板)
'''
注册
'''
# 判断访问方式
if request.method=='GET':

# 返回页面
return render(request,'myapp/register.html')
elif request.method=='POST':


print(request.POST)

# 获取网页提交数据
name=request.POST.get('name')
pwd = request.POST.get('pwd')
cpwd = request.POST.get('cpwd')
print(name,pwd,cpwd)

# 获取数据库内容,判断用户是否已经注册
# 利用filter() 过滤, 过滤条件 , name=name
# filter() 返回 queryset []

User = user.objects.filter(name=name)

# 如果用户存在,返回已注册 '用户已存在'
if User.count() > 0: # True
context = {'msg':'用户已存在'} #上下文
return render(request,'myapp/register.html',context)

# 如果用户不存在,添加用户,返回'注册成功'
else:
if pwd==cpwd:
user.objects.create(name=name,password=pwd)
context = {'msg':'注册成功'}
return render(request,'myapp/register.html',context)
else:
context = {'msg': '密码不一致'}
return render(request,'myapp/register.html',context)

def register1(request):(接口)
  '''
  注册
  '''
  #判断访问方式
  if request.method=='GET':
    # 返回页面
    return JsonResponse({'msg':'访问方式不正确','code':404})
  elif request.method=='POST':
    print(request.POST)
    #获取网页提交数据
    name=request.POST.get('name')
    pwd=request.POST.get('pwd')
    cpwd=request.POST.get('cpwd')
    print(name,pwd,cpwd)
    # 获取数据库内容,判断用户是否已经注册
    # 利用filter()过滤,过滤条件,name=name
    # filter()返回querset[]
    User=user.objects.filter(name=name)

    #如果用户存在,返回已注册'用户已存在'
    if User.count()>0: # true
        #上下文
       return JsonResponse({'msg':'用户已存在','code':404})
    #如果用户不存在,添加用户,返回‘注册成功’
    else:
      if pwd==cpwd:
        User.object.create(name=name,password=pwd)
       
        return JsonResponse({'msg':'注册成功','code':200})
      else:
        return JsonResponse({'msg':用户已存在,'code':404})


模板:
class LoginView(View):
  '''
  登录
  @author:
  @date:
  '''
  def get(self,request):
    return render(request,'myapp/login.html')
  
  def post(self,request):
    print(request.POST)
    
    # 获取网页提交数据
    name=request.POST.get('name')
    pwd=request.POST.get('pwd')
    
    #获取数据库数据,并进行判断
    user.objects.filter(name=name).first() #取第一条数据

    #如果用户存在 判断密码是否一致
    if user:
      # 如果密码一致,跳转到首页
      if pwd==user.password:
        request.session['user_name']=user.name
        return HttpResponse('欢迎{}登录本网站'.format(request.session.get'user_name'))

      else:
        context={'msg':'用户名或者密码错误'}
        return render(request,'myapp/login.html',context)
    
      #如果用户不存在,返回用户名或者密码错误
    else:
      context={'msg':'用户名或者密码错误'}
      return render(request,'myapp/login.html',context)


接口:
class LoginApiView(View):
  '''
  登录
  '''
  @author:
  @date:
  '''
  def get(self,request):

    return HttpResponse(json.demp({'msg':'请求方式不对','code':404},ensure_ascil=False))

  def post(self,request):
    print(request.POST)
    
    #获取网页提交数据
    name=request.POST.get('name')
    pwd=request.POST.get('pwd')
    
    #获取数据库数据,并进行判断
    user.objects.filter(name=name).first() #取第一条数据,当取不到值时返回NULL

    #如果用户存在,判断密码是否一致
    if user:
      #如果密码一致,跳转到网页
      if pwd==user.password:
        request.session['user_name']=user.name
        return HttpResponse(json.dumps({'msg':'登陆成功','code':200}))
      else:
        return render(request,'myapp/login.html',context)
    #如果用户不存在,返回用户或者密码错误
    else:
       context = {'msg':'用户名或者密码错误'}
       return render(request,'myapp/login.html',context)
    


 
 



猜你喜欢

转载自www.cnblogs.com/fado7/p/12078045.html