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

news/2024/7/1 22:02:20

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

 


http://www.niftyadmin.cn/n/2813906.html

相关文章

react中子向父传参

父组件 render(){<Tablebox callback{this.changeIndex.bind(this)}/> } changeIndex(index){console.log(index) }子组件 Tablebox render(){let {callback}this.props;return <div classNametableboxonMouseEnter{()>{callback(凌晨两点半)}}></div>}

钉钉python实现审批(通过软件和钉钉审批流的结合)

为了实现工单系统&#xff0c;又不想自己去结合钉钉的组织架构实现一套审批流&#xff0c;所以采用钉钉的审批结合自己的系统去实现工单。 由钉钉实现审批流&#xff0c;软件实现查询&#xff0c;记录工单等。 一、具体流程 二、具体的实现方式 获取token的函数 def getTok…

跨组件传参 react

const Context React.createContext();// console.log(Context.Provider);// 提供者// console.log(Context.Consumer);//使用者//孙子class Son extends React.Component{render(){return <div className"son"><Context.Consumer>{(data)>{return &…

k8s之pod基础(下)

1.2 镜像拉取的策略 IfNotPresent 只有当镜像在本地不存在时才会拉取。&#xff08;先对本地进行排查&#xff0c;本地有该镜像直接使用&#xff0c;本地没有该镜像则选择在仓库中拉取&#xff09; Always 总是从仓库拉取镜像&#xff0c;无论本地是否存在镜像&#xff08…

钉钉python实现审批数据库设计

为了实现工单系统&#xff0c;又不想自己去结合钉钉的组织架构实现一套审批流&#xff0c;所以采用钉钉的审批结合自己的系统去实现工单。 由钉钉实现审批流&#xff0c;软件实现查询&#xff0c;记录工单等。 在上一篇中已经实现了审批流程以及回调函数的实现和整个工单的逻…

高阶组件 基础模板 react

function Dialog(Component){return class extends React.Component{render(){return <Component />}}}class DialogComponent extends React.Component{render(){return <div classNamebox>凌晨两点半</div>}}let DialogDom Dialog(DialogComponent )…

高阶组件

高阶组件 高阶组件是什么他能给我们带来什么他的优点是什么

react 路由基础配置解释 模板 精简

路由的基本用法 // 下载第三方包 react-router-domimport {BrowserRouter,Route,Redirect,Link,NavLink} from react-router-dom;//在组件当中class Index extends Component{render(){return <BrowserRouter><Route path{} component{} exact/></BrowserRoute…