Vue3+Django4项目整合

前端使用vue,后端使用Django,怎么把Vue项目丢到Django运行呢?直接上代码!

前端使用vue-cli版本

 后端django版本

 前端vue项目写完后,在vue.config.js里加入

  assetsDir: 'static',// 静态资源打包输出目录

运行npm run build

运行完成后会生成dist文件夹,就是我们打包好的项目

把dist文件夹放到桌面

接下来我们去后端Django配置

把dist文件夹丢到Django项目根目录,与APP同级

然后打开settings.py配置 

 

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # 'DIRS': [BASE_DIR / 'templates',]
        'DIRS': ['./dist', ]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

然后继续配置

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "./dist/static")
]

 然后再项目根路由导入

from django.views.generic import TemplateView

    path('', TemplateView.as_view(template_name='index.html')),

此时,在终端运行python manage.py runserver 就能看到我们的项目了

自此教程就结束了!

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Vue3 中调用 Django3 的登录接口,需要在 Django3 中编写登录视图,并使用 Django 自带的用户认证系统来验证用户身份。以下是实现步骤: 1. 在 Django3 项目中创建一个 app,并在 app 中创建一个登录视图: ```python from django.contrib.auth import authenticate, login from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt @csrf_exempt def login_view(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return JsonResponse({'success': True}) else: return JsonResponse({'success': False, 'message': '用户名或密码错误'}) ``` 在这里,使用 Django 自带的 `authenticate` 函数来验证用户身份,并使用 `login` 函数将用户登录。登录成功时返回 `{'success': True}`,登录失败时返回 `{'success': False, 'message': '用户名或密码错误'}`。 2. 在 Vue3 组件中使用 axios 发送登录请求: ```javascript import axios from 'axios' export default { data() { return { username: '', password: '' } }, methods: { async login() { try { const response = await axios.post('/api/login/', { username: this.username, password: this.password }) if (response.data.success) { // 登录成功后的逻辑 } else { console.error(response.data.message) // 登录失败后的逻辑 } } catch (error) { console.error(error) // 登录失败后的逻辑 } } } } ``` 在这里,假设 Django3 的登录接口是 `/api/login/`,并且接收 `username` 和 `password` 两个参数。登录成功时调用登录成功后的逻辑,登录失败时调用登录失败后的逻辑。 这样就可以在 Vue3 中调用 Django3 的登录接口了。注意,在开发过程中,需要同时启动 Vue3 和 Django3 的开发服务器,并且将 Vue3 的开发服务器代理到 Django3 的开发服务器上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值