Django+vue在腾讯云上搭建前后端分离项目

时间:2022-12-30 14:26:26

最近打算用Django+vue搭建一个个人主站,在此记录一下搭建项目的整个过程。

一 开发环境:

  腾讯云Centos     7

  Python                3.7

  Django                2.1.7

  vue.js                  2.9.6

  mysql                  5.7

二 创建Django项目:

  因为我的主站是要放在腾讯云上来跑的,所以整个项目环境都应该是配在linux上的。

  1.在指定路径来创建Django项目:

    命令:django-admin startproject website

  2.然后cd 到项目根目录下来创建一个app:

    命令:python manage.py startapp mywebsite

  这样Django项目就创建成功了,当然,还有好多配置没有配,不急,等我们把vue前端项目也创建完成后一起配

三 创建vue前端项目

  下面来创建一个前端项目:

  1.在使用vue时需要先安装node.js:

      命令:wget https://nodejs.org/dist/v8.5.0/node-v8.5.0-linux-x64.tar.gz

    解压:

      命令:tar zxvf node-v8.5.0-linux-x64.tar.gz

    配置node环境变量(将这两行加到 /etc/profile中):

      命令:vim /etc/profile

        PATH=$PATH:/usr/local/node-v9.3.0
        export PATH

    重载使该文件生效:

      命令:source /etc/profile

  2. 创建vue项目:

    cd到Django项目根目录下:

      命令:vue-init webpack myvue

    myvue 是前端项目的项目名,必须要和Django的app同级才行:

    Django+vue在腾讯云上搭建前后端分离项目

    创建项目时会有许多选项,一路回车+ “Y”即可。

  3.安装依赖包:

    cd到vue前端项目myvue中:

      安装依赖包:npm install

  4.打包vue项目(将所有东西打包成一个dist文件夹,以后的static和templates都在这里边):

    在myvue中执行命令: cnpm run build

  这样前端vue项目创建完成:

    Django+vue在腾讯云上搭建前后端分离项目

四 整合Django和Vue

  前后端项目都创建完成后我们来进行整合:

  在Django项目根目录下,有一个和项目同名的文件夹website,这个文件夹中有一个settings.py,是用来配置整个Django项目的。

  1. 我们当初创建了一个mywebsite的app,现在我们要把他加到Django项目的app中来:

  在settings.py中找到 INSTALLED_APPS 加上app名称。

    Django+vue在腾讯云上搭建前后端分离项目

  2. 更改数据库,Django项目默认使用自带的sqllit3数据库,这里我们要换成mysql,同样也是在settings.py中操作:

    Django+vue在腾讯云上搭建前后端分离项目

    因为我们用的是python3,python3提供操作mysql的库是pymysql,但是Django默认的是mtsqldb,所以如果只在settings中更改数据库,到时候项目会报错.

    还要改这里:在和Django项目同名的文件夹下有一个__init__.py,在这个文件中加上这么两句:

      import pymysql

      pymysql.install_as_MySQLdb()

    就OK了:Django+vue在腾讯云上搭建前后端分离项目

  3.更改模板templates位置: 在红框位置天前端项目的dist文件夹路径       

Django+vue在腾讯云上搭建前后端分离项目      

  4. 更改static静态文件路径: 在settings中添加这个:指向静态文件static文件夹

    Django+vue在腾讯云上搭建前后端分离项目

  5. 配置urls:

   在Django项目同名文件夹下有一个urls.py  这里边是整个Django项目的路由设置。

   还记得在前端vue项目的dist文件夹下有一个index.html 吗?这个html就是vue项目的主界面,

    现在我们在urls中添加这么一句: path('', TemplateView.as_view(template_name="index.html")),

    Django+vue在腾讯云上搭建前后端分离项目

  这表示当我们启动项目后在ip+端口后什么都不写时,就会跳转到这个vue主界面中来:

     Django+vue在腾讯云上搭建前后端分离项目

    按理来说,所有的路由转发都可以在这个urls.py中完成,但是如果你的项目有许多app,路由也会变得很多,到时候有可能会搞混,所以正确的做法是在每个app下都创建一个urls.py,每个app的路由都写在自己的app下,

    这样一来,Django项目同名的文件夹下的urls.py就是一级路由,app下的才是二级路由,一级路由只需要向二级路由做转发就好了。

    Django+vue在腾讯云上搭建前后端分离项目

    Django+vue在腾讯云上搭建前后端分离项目

    Django+vue在腾讯云上搭建前后端分离项目

到这里,利用Django+Vue搭建个人站点的项目创建过程就结束了。

想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python

Django+vue在腾讯云上搭建前后端分离项目  

Django+vue在腾讯云上搭建前后端分离项目的更多相关文章

  1. List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac

    List多个字段标识过滤 class Program{  public static void Main(string[] args) { List<T> list = new List& ...

  2. 【转】python&plus;django&plus;vue搭建前后端分离项目

    https://www.cnblogs.com/zhixi/p/9996832.html 以前一直是做基于PHP或JAVA的前后端分离开发,最近跟着python风搭建了一个基于django的前后端分享 ...

  3. python&plus;django&plus;vue搭建前后端分离项目

    以前一直是做基于PHP或JAVA的前后端分离开发,最近跟着python风搭建了一个基于django的前后端分享项目 准备工作:IDE,[JetBrains PyCharm2018][webpack 3 ...

  4. ASP&period;NET Core 实战:使用 ASP&period;NET Core Web API 和 Vue&period;js 搭建前后端分离项目

    一.前言 这几年前端的发展速度就像坐上了火箭,各种的框架一个接一个的出现,需要学习的东西越来越多,分工也越来越细,作为一个 .NET Web 程序猿,多了解了解行业的发展,让自己扩展出新的技能树,对自 ...

  5. nginx&plus;vue&plus;uwsgi&plus;django的前后端分离项目部署

    Vue+Django前后端分离项目部署,nginx默认端口80,数据提交监听端口9000,反向代理(uwsgi配置)端口9999 1.下载项目文件(统一在/opt/luffyproject目录) (1 ...

  6. 【手摸手,带你搭建前后端分离商城系统】01 搭建基本代码框架、生成一个基本API

    [手摸手,带你搭建前后端分离商城系统]01 搭建基本代码框架.生成一个基本API 通过本教程的学习,将带你从零搭建一个商城系统. 当然,这个商城涵盖了很多流行的知识点和技术核心 我可以学习到什么? S ...

  7. 喜大普奔,两个开源的 Spring Boot &plus; Vue 前后端分离项目可以在线体验了

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

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

    一.为什么需要前后端分离 1.1什么是前后端分离  前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目.怎么理解前后端分离?直观的感觉就是前后端分开去做,即功 ...

  9. 两个开源的 Spring Boot &plus; Vue 前后端分离项目

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

随机推荐

  1. AngularJS事件绑定的使用详解

    本文和大家分享的主要是AngularJS中事件绑定相关知识点,希望通过本文的分享,对大家学习和使用AngularJS有所帮助. 1.绑定事件:表达式.事件方法名: 2.绑定点击事件实例:显示.隐藏页面 ...

  2. 【上手centos】一、前情以及sublime&lowbar;text&lowbar;3安装

    笔记本自大一入手,只重装过一次系统,从不曾拆机清灰过.读研之后,日常工作与学习都在实验室进行,笔记本一直在宿舍的桌子上落灰,只偶尔打开来看个电影.上周末,心血来潮,把笔记本抱到实验室拆了清灰,以前一直 ...

  3. dom select选单

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. 再起航,我的学习笔记之JavaScript设计模式04

    我的学习笔记是根据我的学习情况来定期更新的,预计2-3天更新一章,主要是给大家分享一下,我所学到的知识,如果有什么错误请在评论中指点出来,我一定虚心接受,那么废话不多说开始我们今天的学习分享吧! 上回 ...

  5. python&lpar;9&rpar;&colon; GUI

    实例1: 对输入的所有数字求和, 最后以. 结束输入 def fun(): list1=[] print('input a number:') while True: num=input() if n ...

  6. js防止安卓手机软键盘弹出挤压页面导致变形的方法

    5防止安卓手机软键盘弹出挤压页面导致变形的方法 输入框定位在底部,手机端打开,输入框聚焦后软键盘打开为什么会瞬间自动关闭呢? 先看看问题: 1.原来是这样的: 2.在苹果手机里面是正常的: 3.到了安 ...

  7. 字符串阵列String&lbrack;&rsqb;转换为整型阵列Int&lbrack;&rsqb;

    原始数据: string input = "3,7,2,8,1,9,1,34,67,78,22"; 要处理为: " }; 最终处理为: , , , , , , , , , ...

  8. 【SpringBoot】SpringBoot热部署和配置文件自动注入实战

    ========================3.SpringBoot热部署devtool和配置文件自动注入实战 ============================ 1.SpringBoot2 ...

  9. lufen登录注册

    创建精写报错信息表用于记录错误信息(新的文件夹,创建新的py) #静写报错信息class BaseResponse(object): def __init__(self): self.code=100 ...

  10. Android SDK Content loader has encountered a problem” &OpenCurlyDoubleQuote;parseSdkContent Failed ”

    昨天做了一个Android的小程序,调试的时候连接真实的手机,而不是用模拟器.今天早上打开eclipse的时候报错:“Android SDK Content loader has encountere ...