自学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