网站建设 之 django+vue

本文介绍如何在Node.js环境中集成Vue.js前端框架,包括配置Vue应用与Node.js服务的交互方式,以及如何利用Docker进行部署。文章还探讨了前端Vue与后端如Django等框架的结合方式。
摘要由CSDN通过智能技术生成

 

搜索安装node。

是通过这篇文章实现的:

http://dockone.io/article/8834

先别用docker,先跑起webapp再说。

https://blog.csdn.net/alvinliu2031/article/details/81039741

vue只是脚手架,它仍然要发布到tomcat或者别的什么。上传到任何一个服务器目录即可。

每个node进程都是一个app,通过nginx管理入口。解析地址进行端口分发。

因此现在只有node就可以。

打包后非常简约,完完全全就是index,css,js前端文件。

打包出来的东西基本都不可读。

现在打算弄到node+vue就可以见客了,最终一定弄到nginx+node+vue。

这里大致明白是怎么回事了。。。但开发环境如何与mysql交互呢?也是一样的,只不过是自己的mysql,一样的。

注意vue还是前端,它不是后端,后端仍然要后端的程序,例如django。。。vue连接数据库是不可行的。是vue连接django,django连接数据库。

你仍然需要django,甚至之后仍然需要nginx。就不能前后端结合吗?

重学Django,重学vue(我干嘛用Django啊,配置这么恶心,用node不香吗。。。)

以后写vue的话,可以在自己的机器上写,写完后上传到目标文件夹里,非常爽啊。

命名的确是个学问,现在只有django,以后还会加上vue,采用迭代开发,先只有django,然后再加上vue,然后再加上mysql,然后再上docker,同时名字也逐步想好。sharesoft真是太逊了,而且域名很难搞定。起名字就不能用。作为一个网站的后台,用background,前台就是foreground,用什么template啊,是吧。

采用迭代开发的话,就用一个test文件夹了,里面是test1,test2什么的。

发现了一个问题,没有django,我也不想安装了。这里直接用容器做了。

可以给容器命名:

docker run --name=meaningful_name

当然,用compose启动容器,这样才能挂载卷。

出现一个问题,如果挂载卷的话,那么必须制作一个dockerfile来开辟一个文件夹并指定工作文件夹,是这样的,

你需要进行挂载了,将vue目录中的dict add到里面不合适,这就会丢失实时开发的能力,必须挂载卷。

直接挂载到那个工程就可以了,这里就需要重新制定镜像,写docker文件

先在宿主机上创建一个django_vue文件夹,用来写Dockerfile

创建一个dict文件夹,

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

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['vue-admin-master/dist'], # 修改内容

说明是从项目总目录开始的

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

STATIC_URL = '/static/'

STATICFILES_DIRS=[
    os.path.join(BASE_DIR,'vue-admin-master/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')),
]

接下来重新生成一个镜像,命名为vue_django

接下来写dockerfile和docker-compose.yml

from vue_django

workdir /web

version: '3'

services:

    web:

        build: ./

        ports:

            - "8000:8000"

        volumes:

            - ../../sharesoft/dist:/web/dist

成功了!vue本来就是很容易成功的,现在只对vue修改前端就好了,说实话,必要时把后端也剥离出来才行,全部都放到sharesoft,这样vscode就比较容易全部编辑到。

接下来就是重新编排卷,把background也挂载。

容器里转移出来

sudo docker container cp -a 容器id:SRC_PATH DEST_PATH

做好了,紧接着挂载卷,里面的就不要了。

成功。

紧接着vscode连接。

出现一个大问题,要把个人文件夹里的.ssh里的know_host全部清空,否则会出错。

并不会实时更改,就好像拷贝过一份一样。重启试试?

重启也不行,强制刷新也不变,那是因为没有打包。。。

npm run build

打包还特别慢。。。

打包完后确实可以了。

之所以只能在本地是因为conf文件夹里是localhost,改成0.0.0.0应该就没问题了。

并不是很友好啊,,,文件打开太慢了

太棒了太棒了太棒了,npm run dev也能用,简直颅内高潮啊。

行了,今天是事情算做完了。

现在感觉vue跟微信小程序有点像了,都需要配置路由,然后都是page而已,要新建一个page文件夹。

在需要加载路由的地方,使用Vue组件 router-view 去加载,这个就好像占位符吧。

export default new Router({
   // routes用来定义路由对象,里面的每一个对象都是一个路由
 routes: [
   {
     path: '/', // 碰到这个路径跳转路由至index
     name: 'index',  // 给这个路由取的一个别名
     component: index // 代表在当前路径下,加载index路由
   }
 ]
})

@click='$router.push({name:"movieDetail"})'

进入详情页就是这样实现的,跟微信小程序也差不了多少嘛。$router.push() 属于编程式路由

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值