登录注册

登录注册

1.settings.py配置

INSTALLED_APPS = [
    'rest_framework',
    'corsheaders',
    "app03",
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
]

CORS_ORIGIN_ALLOW_ALL=True

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'day42',
        'HOST':'localhost',
        'PORT':3308,
        'USER':'root',
        'PASSWORD':'root'
    }
}
settings.py

2.主路由配置urls.py

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),

    path("app03/",include("app03.urls")),
]
urls.py

3.子路由配置app03/urls.py

from django.urls import path,include
from .import views
urlpatterns = [
    path("user/",views.UserView.as_view()),
    path("login/",views.LoginView.as_view()),

]
app03/urls.py

4.配置表models.py

from django.db import models

# Create your models here.
#用户表
class User(models.Model):
    username=models.CharField(max_length=32)
    password=models.CharField(max_length=50)
    oauth=models.BooleanField(default=False)

    class Meta:
        db_table="user03"
app03/models.py

5.配置视图app03/views.py

from rest_framework.response import Response
from rest_framework.views import APIView
from .models import *


#用户注册
class UserView(APIView):

    def post(self,request):
        username=request.POST.get("username","").strip()
        password=request.POST.get("password","").strip()
        oauth=request.POST.get("oauth",0)
        print(username)
        print(password)
        print(oauth)
        data={
            "username":username,
            "password":password,
            "oauth":oauth
        }
        obj=User.objects.create(**data)
        if obj:
            return Response({'code':1000,"msg":"添加成功"})
        return Response({'code': 1001, "msg": "添加失败"})
#用户登录
class LoginView(APIView):
    def post(self,request):
        username=request.POST.get("username","").strip()
        password=request.POST.get("password","").strip()

        obj=User.objects.filter(username=username,password=password).first()
        if obj:
            return Response({"code":1000,"msg":"登录成功","data":obj.oauth})
        return Response({"code":1001,"msg":"登录失败"})
app03/views.py

VUE 配置

1.配置axios  main.js

import axios from "axios";

// axios.defaults.baseURL='http://127.0.0.1:8000'
Vue.prototype.axios=axios;
main.js

2.配置index.js

import Adduser03 from '@/components/Adduser03'
import Login03 from '@/components/Login03'



Vue.use(Router)

export default new Router({
    routes: [
{
      path: '/adduser03',
      name: 'Adduser03',
      component: Adduser03
    },
    {
      path: '/login03',
      name: 'Login03',
      component: Login03
    },
  ]
})
index.js

3.注册页面Adduser03.vue

<template>
    <div>
        <h1>添加用户信息</h1>
        <table >
            <tr>
                <td>用户名称 <input type="text" v-model="username"></td>
                <td>用户密码 <input type="password" v-model="password"></td>
                <td>用户状态 
                    <select v-model="oauth">
                        <option value="1">有效</option>
                        <option value="0">无效</option>
                    </select>
                </td>
                <td><button @click="sub">添加</button></td>
            </tr>
            
  
        </table>
        
    </div>
</template>


<script>
export default {
    data(){
        return{
            username:"",
            password:"",
            oauth:0
        }
    },
    methods:{
        sub:function(){
            let formdata=new FormData();
            formdata.append("username",this.username);
            formdata.append("password",this.password);
            formdata.append("oauth",this.oauth);

            this.axios({
                url:"http://127.0.0.1:8000/app03/user/",
                method:"post",
                data:formdata
            }).then(res=>{
                if(res.data.code==1000){
                    //将分数添加到本地
                    // localStorage.setItem("score",res.data.data);
                    //跳转
                    this.$router.push({
                        name:"Login03"
                    })
                }else{
                    alert(res.data.msg)
                }
                
            })

        }
    }
}
</script>



<style scoped>
table{
    margin: 0 auto;
}
</style>
Adduse03.vue

4.登录页面Login03.vue

<template>
    <div>
        <h1>登录页面</h1>
        用户名:<input type="text" v-model="username">
        用户密码:<input type="password" v-model="password">
        <button @click="sub">登录</button>
    </div>
</template>

<script>
export default {
    data(){
        return{
            username:"",
            password:""
        }
    },
    methods:{
        sub:function(){
            let formdata=new FormData();
            formdata.append("username",this.username);
            formdata.append("password",this.password);
            this.axios({
                url:"http://127.0.0.1:8000/app03/login/",
                method:"post",
                data:formdata
            }).then(res=>{
                if(res.data.code==1000){
                    localStorage.setItem("oauth",res.data.data)
                    alert(res.data.msg)
                }else{
                    alert(res.data.msg)
                }
            })
        }
    }
}
</script>
Login03.vue
原文地址:https://www.cnblogs.com/xiaoxiamiaichiyu/p/13868264.html