vue前端+Python后端环境配置及前后端访问

1、项目需求

项目本来是用C#写后端的,但是由于需要对影像作栅格处理,虽然GDAL也支持C#,但是我选择了Python,于是顺理成章的就要搭建Python后端项目。大致查看了一下大神们分析的Python后端框架。最后选择了django

2、项目初始化

  • vue项目搭建

1、下载nodejs
2、执行命令
npm install webpack -g //安装webpack
npm install vue-cli -g //安装脚手架工具
vue init webpack project-name<项目名字不能用中文> //初始化项目
npm run dev //启动项目

  • django项目搭建
    (在项目搭建之前,可以配置虚拟环境文章末详述)

1、下载python
2、安装django
pip install Django==2.0 //使用pip安装指定版本django
django-admin startproject projectname #创建项目
python manage.py startapp projectapplicationname #进入到项目中目录下创建应用
python manage.py runserver ip:port //指定IP和port下启动

3、前后端连接

  • vue 前端连接(已发送get请求为例)
var jsontext = encodeURIComponent('{"functionname":"stateOfNutrition","title":"2","year":"3"}');
this.$http.get("http://127.0.0.1:8000/webtest/?jsontext="+jsontext).then(response => {
       let data=response.data
  })
  • python后端
    1、django初始化目录结构
    在这里插入图片描述
    2、创建应用

python manage.py startapp APP
项目结构中新生成了一个文件夹。
在这里插入图片描述

3、后端接收请求
在app文件中的views.py中

from django.shortcuts import render,HttpResponse, render_to_response
import json
class PythonWebDemo(object):
    @staticmethod
    def webtest(request):
        data = {}
        jsontext=request.GET.get('jsontext', 2)
        functionname=json.loads(jsontext)["functionname"] //解析出funtionname的值
        filename=json.loads(jsontext)["title"]
        compareyear=json.loads(jsontext)["year"]
        data['filename'] = filename
        data['compareyear'] = compareyear
        sample = json.dumps(data)  # json.dumps()把一个Python对象编,码转换成Json字符串。
   return HttpResponse(sample,content_type="application/json")//返回给前端

在urls.py中添加路由

from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from django.views.generic.base import TemplateView
import APP.views
urlpatterns = [
    path(r'^admin/', admin.site.urls),
    url(r'^webtest/', APP.views.PythonWebDemo.webtest),//添加api路由
    path(r'',TemplateView.as_view(template_name="index.html"))
]

添加跨域访问
由于刚开始不是同一IP下搭建的项目,这里涉及跨域问题。

pip install django-cors-headers

在settings.py中新增,顺序不可颠倒
在这里插入图片描述
python manage.py runserver启动项目,即可查看到返回的值
在这里插入图片描述

4、vue项目打包

1、将vue项目放置python后端启动

执行npm run build

在vue项目打包生成的dist目录拷贝到python后端工程中。
在这里插入图片描述
2、更改设置,添加路由。
在settings.py中注册创建的APP应用,添加dist目录
在这里插入图片描述
在这里插入图片描述
并增加

STATICFILES_DIRS=[ os.path.join(BASE_DIR,“dist/static”) ]
在urls.py中添加path
在这里插入图片描述

3、配置完成后启动项目

python manage.py runserver

打开浏览器输入http://127.0.0.1:8000即可查看vue项目
在这里插入图片描述

5、pycharm 调试

工欲善其事必先利其器,在连接Python后端时,第一次使用肯定会出现很多问题,所以我先查看一下pycharm编辑器如何调试,如何设置以指定的IP启动等问题。因为这涉及到我们前端发送请求的地址。
点击Edit Configuration进行Debug配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时你的项目就以你需要的方式启动了。
在这里插入图片描述
当进入到断点调试时,可输出需要的变量值。
在这里插入图片描述

6、 虚拟环境配置

使用虚拟环境,我们可以随意对虚拟系统进行设置或更改操作,尤其是使用虚拟机可以进行系统硬盘的格式化,进行重新分区操作,而且不会担心丢失数据

  • 安装

pip install virtualenv

  • 豆瓣源镜像安装

pip install -i https://pypi.doubanio.com/simple django

  • virtualenvwrapper安装

pip install virtualenvwrapper-win

  • 创建虚拟环境

mkvirtualenv (–python==python.exe路径) test(环境名称)

  • 退出当前虚拟环境

deactivate

  • 进入虚拟环境

workon test

  • 删除虚拟环境

rmvirtualenv test

  • 列出所有虚拟环境

lsvirtualenv

  • 进入到虚拟环境所在目录

cdvirtualenv

Python是一种流行的编程语言,有非常丰富的库和框架可供使用。而Django是一个基于Python的开发框架,用于快速搭建Web应用程序。Vue是一种流行的JavaScript框架,用于构建用户界面。 当我们要搭建一个前后端分离的项目时,可以使用Python的Django框架和Vue框架来实现。下面是大致的步骤: 1. 对于后端,我们可以使用Django框架来搭建RESTful API。首先,创建一个新的Django项目并设置好相关配置。然后,定义数据模型和数据库表,可以使用Django的ORM(对象关系映射)来简化数据库操作。接下来,创建视图函数来处理不同的API请求,可以通过序列化器将模型数据转换为JSON格式进行传输。最后,设置URL路由映射和权限控制,确保API的安全性和可访问性。 2. 对于前端,我们可以使用Vue框架来构建用户界面。首先,创建一个新的Vue项目并安装所需的依赖项。然后,创建组件来管理不同的页面和功能模块。在组件中,可以使用Vue的数据绑定和计算属性等功能来简化数据处理和状态管理。同时,可以使用Vue Router来管理页面之间的导航和路由,以及使用axios库来发送API请求和接收响应。 3. 在前后端之间进行通信时,前端通过axios发送HTTP请求到后端的API接口,后端处理请求并返回相应的数据。前端可以根据接口的返回结果来更新界面和展示数据。 总的来说,使用Python的Django框架和Vue框架可以很好地实现前后端分离的项目。Django提供了强大的后端支持,可以快速搭建API接口,而Vue框架则提供了便捷的前端开发环境,可以轻松构建用户界面。通过这种搭配,我们可以高效地开发出功能完善、交互流畅的Web应用程序。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值