学习react——django和react的登录,注册

自学react,作为一个只有后端python方面知识的人,看过一点点前端教程基础,学习react还是不轻松的。

记过两天的学习,自制一个简单的登录,注册界面,组件的划分用的还不是熟悉。

登录界面:http://localhost:3000/login

 

注册界面:http://localhost:3000/register

 

首页的界面:http://localhost:3000/homepage

 

一共三个界面,前端是用react画的,后端是用django做的登录注册。

 

django部分的登录注册代码,用的是restframework的模式:

class UserViewset(ModelViewSet):
    '''
    用户类,用于登录注册
    '''
    serializer_class = UserSerializer
    queryset = User.objects.all()

    @action(methods=['POST'], url_path='login', detail=False)
    def login(self, request):
        '''
        登录
        :param request: 用于传参数,必要参数 username:用户名   password:密码
        :return:
        '''
        username = request.data.get('username')
        pwd = request.data.get('password')

        res = {
            'code': 0,
            'msg': '',
            'data': {}
        }
        if not all([username, pwd]):
            res['msg'] = '参数异常。'
            return Response(res)
        print(request.data)
        try:
            user = User.objects.get(username=username, password=pwd)
        except:
            res['msg'] = '用户名或者密码错误,请重新登陆。'
            return Response(res)
        if user.is_active != 1:
            res['msg'] = '用户不可用,请重新登陆。'
            return Response(res)

        login(request, user)
        request.session['login'] = True
        request.session['FS_YWPT'] = True
        request.session.set_expiry(0)
        res['msg'] = '登陆成功'
        res['code'] = 1
        res['data'] = {'username': username}
        return Response(res)

    @action(methods=['POST'], url_path='register', detail=False)
    def register(self, request):
        '''
        注册
        :param request: 用于传参数,必要参数 email:邮箱   password:密码  username:用户名  residence:地区  website:暂时没啥用
        :return:
        '''
        email = request.data.get('email')
        password = request.data.get('password')
        username = request.data.get('username')
        residence = request.data.get('residence')
        website = request.data.get('website')
        res = {
            'code': 0,
            'msg': '',
            'data': {}
        }

        if not all([email, password, username, residence, website]):
            res['msg'] = '参数异常。'
            return Response(res)

        print([email, password, username, residence, website])
        if User.objects.filter(username=username):
            res['msg'] = '用户已存在。'
            return Response(res)

        User.objects.create(password=password, is_superuser=0, username=username, email=email)
        res['code'] = 1
        res['data'] = [email, password, username, residence, website]
        return Response(res)

 

react部分:

登录界面,用的是ant中的表单组件。

注册界面,用的是ant中的表单组件。

首页,用的是ant中的布局。

 

还有一些js代码的编写。

 

详细代码,git地址:https://github.com/SmallRedHXB/loginAndReact.git

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值