Django框架之views(业务逻辑)简单后台注册业务逻辑详细描述


from django.shortcuts import render,HttpResponse,HttpResponseRedirect
import models
from django.db.models import Q  # 模糊查询使用的对象
from django.core.paginator import Paginator,InvalidPage,EmptyPage,PageNotAnInteger    # 分页使用的类和异常处理的包
from django.contrib import auth      # 登录,退出,验证使用的包
from django.contrib.auth.decorators import login_required       # 防止未登录就直接访问后台页面使用的包
from django.contrib.auth.models import User        # 引入用户表
from django.contrib.auth.hashers import make_password    # 密码加密使用的包
import os
import uuid   # 生成唯一标识符
# 注册页面
def reg(request):
    if request.method == 'POST':
        # 收集用户信息
        username = request.POST.get('username',None)
        password1 = request.POST.get('password1',None)
        password2 = request.POST.get('password2',None)
        nick = request.POST.get('nick',"")
        phone = request.POST.get('phone',"")
        print username
        if username and password1 and password2:
            if password1 == password2:
                # 判断用户名在用户表中是否存在
                u_count = User.objects.filter(username=username).count()    # 查看结果记录条数
                if u_count == 0:   # 没有这个用户名
                    # 添加自带用户表
                    user_info = {
                        'username':username,
                        'password':make_password(password2)
                    }
                    user_info = User.objects.create(**user_info)
                    # 添加扩展表的扩展信息
                    user_profile={
                        'nick':nick,
                        'phone':phone,
                        'user':user_info
                    }
                    models.UserProfile.objects.create(**user_profile)
                    return HttpResponseRedirect('/pro01/login/')
                else:
                    return render(request, 'pro01/reg.html', {'error': '用户名已存在'})
            else:
                return render(request,'pro01/reg.html',{'error':'两次密码不相同'})
    else:
        return render(request,'pro01/reg.html')
# ajax验证用户名是否存在

def checkname(request):
    # 获取ajax传递的name
    name = request.GET.get('name',None)
    res = models.User.objects.filter(username=name).count()   # 受影响行数
    if res == 0:
        return HttpResponse('ok')
    else:
        return HttpResponse('用户名已经存在')

注意:以上内容是个人使用的随手记录, 就是介绍了下简单的使用

欢迎大家来吐槽,准备好瓜子饮料矿泉水,开整!!!

---------------------------------------------------------------------------------------

搞笑:能动手就尽量别吵吵


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章