1.利用模板创建登录或注册网页数据库栏:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
2.在myappurls.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)