Vue+Django搭建网页学习

Vue+Django搭建网页学习

1 简介

1.1 Vue

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
如果你想在深入学习 Vue 之前对它有更多了解,我们制作了一个视频,带您了解其核心概念和一个示例工程。
如果你已经是有经验的前端开发者,想知道 Vue 与其它库/框架有哪些区别,请查看对比其它框架。

1.2 Django 简介

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。

2 安装方法

2.1 Vue

  • 首先安装Node.js,安装成功后命令行 npm -v 显示版本号,验证安装成功。
  • npm install -g @vue/cli 安装vue 和脚手架(框架),命令行vue -V显示版本号验证安装成功。

2.2 Django 的安装

命令行或者终端中输入: Python3 -m pip install django

3 Vue创建前端静态页面

3.1 创建脚手架

  • 创建前端文件夹,有两种方法
  1. Vue 版本 >=2 : vue create [options]
  2. Vue 低版本 : ** npm install -g @vue/cli-init ; vue init webpack [app-name]**

3.2 运行和打包

  • 建立文件夹后,在文件夹中运行 npm install 安装所需的库
  • npm run dev 开启本地端口,查看网页。
  • npm run build 打包。打包完成后如果直接运行dist中的index,可能无法显示页面
    此时,如果直接运行dist文件夹中的.html文件,页面将无法加载static文件夹中的文件,如果想本地打开需要修改html文件中的加载路径(href)。两种方法:
  1. npm install -g http-server,然后打开config文件夹下面的index.js,修改 assetsPublicPath: ‘/’ => assetsPublicPath: ‘./’
  2. 直接修改index.html文件中的路径 即:href=./static/css/app.30790115300ab27614ce176899523b62.css rel=stylesheet,
### 使用 Nginx 部署 Vue.js 和 Django 应用 #### 安装依赖环境 为了成功部署应用程序,需先安装必要的软件包。这通常包括 Python 的虚拟环境工具 `virtualenv` 或者 `venv` 模块用于隔离Python运行环境;Node.js及其包管理器 npm 用来构建Vue应用。 #### 设置Django项目结构 创建一个新的Django项目并按照标准流程设置好后端服务[^2]。确保项目的配置文件中包含了正确的 WSGI application路径设定,例如: ```python WSGI_APPLICATION = 'django_project.wsgi.application' ``` 对于数据库连接部分,则应参照官方文档来完成相应的配置工作[^3]。 #### 开发Vue前端应用 在独立的工作区里开发Vue单页面应用(SPA),利用vue-cli脚手架快速搭建起基础架构。当SPA准备就绪之后,可以通过执行命令将其打包成静态资源文件以便后续由Web服务器提供访问。 #### 调整Nginx配置以支持前后端分离模式下的请求转发逻辑 为了让用户能够顺利浏览到完整的网站内容,在生产环境中应当调整Nginx的站点配置使得HTTP请求可以被正确解析给对应的处理程序。具体做法如下所示[^4]: 1. 将API接口调用指向Django; 2. 把其他所有URL都导向至Vue编译后的index.html入口页从而实现路由重定向功能。 下面给出一段典型的nginx.conf片段作为参考: ```nginx server { listen 80; server_name localhost; location /api/ { proxy_pass http://localhost:8000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /static/ { alias /path/to/django/static_root/; } location /media/ { alias /path/to/django/media_root/; } location / { try_files $uri $uri/ /index.html; root /path/to/vue/dist/; } } ``` 这段配置实现了对不同类型的请求分别转交给不同的处理器负责响应的功能:带有 `/api/` 前缀的会被发送给监听于本地8000端口上的Django实例去解答;而针对媒体文件以及静态资源则直接返回实际存在的物理位置;最后任何未匹配成功的URI都将尝试加载位于根目录下名为 index.html 的HTML文档——这是Vue Router默认情况下所期望的行为方式之一。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值