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)
来源: http://www.bubuko.com/infodetail-3343415.html