python框架django中结合vue进行前后端分离

一、创建django项目

1.django-admin startproject mysite   # 创建mysite项目

2.django-admin startapp app01# 创建app01应用

 二、安装vue

  • 安装vue-cli:npm install -g vue-cli (Vue-cli是Vue的脚手架工具,-g表示在全局下安装vue-cli)
  • 安装webpack: npm install webpack -g  (包管理工具,主要是打包和解包用的)
  • 创建项目:vue init webpack my-vue(my-vue是项目名称,是随意取的)

环境配置 :

  • 切换到所创建的项目目录下: cd my-vue
  • 安装启动模块:npm install
  • 启动项目:npm run dev

如果可以运行成功,证明当前vue项目是没有问题

四:vue项目写完后,打包vue项目,然后修改django配置,将vue集成到django中

npm run build

注意:只有build之后启动django的时候,你在vue中修改的才能生效,否则无效。这个在cmd中的使用。

在python下的项目文件夹下的-settings.py中配置:

TEMPLATES = [
    {
        ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
        ‘DIRS‘: [os.path.join(BASE_DIR, ‘frontend/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‘,
            ],
        },
    },
]

把vue的静态文件夹的目录配置到项目中【添加静态文件夹路径】

STATIC_URL = ‘/static/‘

STATICFILES_DIRS=[
    os.path.join(BASE_DIR,‘frontend/dist/static/‘), # 添加内容
]

五:修改django的主目录的urls文件

from django.contrib import admin
from django.urls import path
from blog import views
from django.views.generic.base import TemplateView

urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(r‘‘, TemplateView.as_view(template_name=‘index.html‘)),
]

六:启动django服务,访问localhost:8000 则可以出现vue的首页

启动django

python manage.py runserver
http://127.0.0.1:8000/#/login

访问出现vue项目的界面,就已经成功了!

七:有时候并不能直接访问出首页,原因是路径不对

有的会设置的有前缀,需要把前缀去掉,重新打包才能使用

打包的时候不需要把之前的打包内容删除,直接重新打包,会有对应的打包记录

八:vue打包之后经常会出现fontawesome图标库不能使用的情况

打包之后,需要手动吧fontawesome引入的css文件路径更改,把原来的

url(/static/fonts/fontawesome-webfont.b06871f.ttf),
换成
url(../fonts/fontawesome-webfont.b06871f.ttf),

fontawesome小图标就可以显示出来了

本篇博客参考:https://www.cnblogs.com/ranyihang/p/10694635.html

原文地址:https://www.cnblogs.com/zhangqigao/p/12325961.html

时间: 2024-08-06 12:30:06

python框架django中结合vue进行前后端分离的相关文章

Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享)

Python Flask高级编程之RESTFul API前后端分离精讲 (免费分享)  点击链接或搜索QQ号直接加群获取其它资料: 链接:https://pan.baidu.com/s/12eKrJKN-MzscalsJKRoL5w 提取码:88hj 免费分享,如若链接失效请加群 其它资源在群里,私聊管理员即可免费领取:群——517432778,点击加群,或扫描二维码 免费课程资料领取目录:  Python Flask构建微信小程序订餐系统 Python分布式爬虫必学框架Scrapy打造搜索引擎

gin+vue的前后端分离开源项目

该项目是gin+vue的前后端分离项目,使用gorm访问MySQL,其中vue前端是使用vue-element-admin框架简单实现的: go后台使用jwt,对API接口进行权限控制.此外,Web页面在token过期后的半个小时内,用户再次操作会自动刷新token: 项目很小,适合gin新手学习!(后续有时间会补上相关教程) GitHub地址:https://github.com/Bingjian-Zhu/gin-vue 一.运行go后台项目 (1)把项目clone到GOPATH/src目录下

一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器

一.前言 最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成 止步传统CRUD,进阶代码优化: 该项目可根据数据库字段动态生成 controller.mapper.service.html.jsp.vue.php..py ... 等各种类型代码,采用 velocity 模板引擎在页面动态配置生成代码,前后端动态权限配置,前端权限精确到 按钮 级别,后端权限精确到 uri 上,QQ授权第三方单用户登录...等 基本环境: JDK

docker-compose 部署 Vue+SpringBoot 前后端分离项目

一.前言 本文将通过docker-compose来部署前端Vue项目到Nginx中,和运行后端SpringBoot项目 服务器基本环境: CentOS7.3 Dokcer MySQL 二.docker-compose 部署Vue+SpringBoot 前后端分离项目 整体项目配置结构,这里在不影响原来项目的结构,因此将所有配置文件都提出来存放到docker文件夹内了,但注意docker-compose文件须放到项目总的根目录下哦! 1.新增后端所需配置文件api-Dockerfile # 指定基

vue+springboot前后端分离工程中跨域问题的解决

vue+springboot前后端分离工程中跨域问题的解决 假如是在同一台机器上开发,前后端分离的工程中出现跨域问题的原因是,前端工程和后端工程运行在不同的端口上.只要协议.域名.端口有一个不同就会产生跨域问题,所以在前端工程中请求后端的接口时就会因为端口不同而产生跨域问题. 一.解决跨域的原理 假设前端A要去访问服务器C,可以在A和C之间之间设置一个代理B,A访问C时先访问B,再由B代为请求C并把请求结果返回给A,这样就可以解决跨域问题.其中需要保证的是A访问B和B访问C都不能存在跨域. 二.

基于Vue的前后端分离项目实践

一.为什么需要前后端分离 1.1什么是前后端分离  前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目.怎么理解前后端分离?直观的感觉就是前后端分开去做,即功能和职责上的一种划分,前端负责页面的渲染,部分页面交互的逻辑,然后通过网络请求与后端进行数据的交互:后端则着重关注业务逻辑的处理,直接操控数据库. 1.2前后端未分离前(1)jsp + servlet 开发模式: JSP页面:负责视图层的渲染及交互,内部可以嵌入java 代码,在某些场景下开发起来比

REST风格框架实战:从MVC到前后端分离(附完整Demo)

既然MVC模式这么好,难道它就没有不足的地方吗?我认为MVC至少有以下三点不足:每次请求必须经过“控制器->模型->视图”这个流程,用户才能看到最终的展现的界面,这个过程似乎有些复杂:实际上视图是依赖于模型的,换句话说,如果没有模型,视图也无法呈现出最终的效果:渲染视图的过程是在服务端来完成的,最终呈现给浏览器的是带有模型的视图页面,性能无法得到很好的优化. 为了使数据展现过程更加直接,并且提供更好的用户体验,我们有必要对MVC模式进行改进.不妨这样来尝试:首先从浏览器发送AJAX请求,然后服

python框架-django中的表单类

一:表单类 一般我们在html中自己写的表单类似于下面的样子 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv=

node+mysql+vue 搭建前后端分离基础框架

话不多说直接上 1.安装node,通过express.生成node项目.搭建链接 http://www.expressjs.com.cn/starter/generator.html: 2安装vue 前端项目. 3.配置vue 跨域问题,找到vue里面config里的index文件.配置proxyTable 原文地址:https://www.cnblogs.com/chen527/p/11442588.html