整合 Django + Vue.js 框架快速搭建 web 项目

django 与 vue 的完美结合 最近接到一个任务,就是用django后端,前段用vue,做一个普通的简单系统,我就是一搞后端的,听到vue也是比较震惊,之前压根没接触过vue。看了vue的一些文档,还有一些项目,先说一下django与vue的完美结合吧! 首先是创建一个django项目 django-admin startproject mysite # 创建mysite项目 django-admin startapp bl... 阅读详情

一、 背景
在工作中我们经常须要构件一些基于web的项目,例如内部测试平台、运维系统等。本篇主要介绍如何使用后端Django + 前端Vue.js的技术栈快速地搭建起一套web项目的框架。

为什么使用Django和Vue.js?

Django是Python体系下最成熟的web框架之一,由于Python语言的易用性和受众面广,Django框架也因其能够快速开发网站应用的特性成为了中小型网站开发框架首选。且Django具备的数据分析( Pandas )、任务队列( Celery )、Restful API( Django REST framework )、ORM(类似java的hibernate)等一众功能都使得用户在面对任何建站需求时都能够得心应手。

Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js同样支持双向绑定、mustache标签语法等特性,并提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。

本篇使用Vue.js作为前端框架,代替Django本身较为孱弱的模板引擎,Django则作为服务端提供api接口,使得前后端实现完全分离,更适合单页应用的开发构建。

二、 环境准备
安装环境:

Django系:

Python 2.7 +

Django 1.11

Mysql 5.7

Python的MySQLdb模块等

推荐python相关的模块(包括Django)都使用python自带的pip安装器安装。命令:pip install django即可安装最新版本的django

Vue.js系:

Node.js 6.1

有关Vue的模块(包括vue)我们都使用node自带的npm包管理器安装

三、 构建Django项目
我们首先使用Django来搭建web后端api框架。

1、 先在终端敲入命令:

django-admin startproject myproject

目录结构:
在这里插入图片描述

2、 进入项目根目录,创建一个app:

python manage.py startapp myapp

目录结构:
在这里插入图片描述

3、 在myproject下的settings.py配置文件中,把默认的sqllite3数据库换成我们的mysql数据库:

# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases

DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.mysql',
 'NAME': 'myproject',
 'USER': 'root',
 'PASSWORD': 'root',
 'HOST': '127.0.0.1',
 }
}

并把app加入到installed_apps列表里:

INSTALLED_APPS = [
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'myapp',
]

4、 在app目录下的models.py里我们简单写一个model如下:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# Create your models here.
class Book(models.Model):
 book_name = models.CharField(max_length=64)
 add_time = models.DateTimeField(auto_now_add=True)

 def __unicode__(self):
 return self.book_name

只有两个字段,书名book_name和添加时间add_time。如果没有指定主键的话django会自动新增一个自增id作为主键

5、 在app目录下的views里我们新增两个接口,一个是show_books返回所有的书籍列表(通过JsonResponse返回能被前端识别的json格式数据),二是add_book接受一个get请求,往数据库里添加一条book数据:

# Create your views here.
@require_http_methods(["GET"])
def add_book(request):
 response = {}
 try:
 book = Book(book_name=request.GET.get('book_name'))
 book.save()
 response['msg'] = 'success'
 response['error_num'] = 0
 except Exception,e:
 response['msg'] = str(e)
 response['error_num'] = 1

 return JsonResponse(response)

@require_http_methods(["GET"])
def show_books(request):
 response = {}
 try:
 books = Book.objects.filter()
 response['list'] = json.loads(serializers.serialize("json", books))
 response['msg'] = 'success'
 response['error_num'] = 0
 except Exception,e:
 response['msg'] = str(e)
 response['error_num'] = 1

 return JsonResponse(response)

可以看出,在ORM的帮忙下,我们的接口实际上不需要自己去组织SQL代码

6、 在app目录下,新增一个urls.py文件,把我们新增的两个接口添加到路由里:

from django.conf.urls import url, include
import views

urlpatterns = [
url(r'add_book$', views.add_book, ),
url(r'show_books$', views.show_books, ),
]

7.我们还要把app下的urls添加到project下的urls中,才能完成路由:

from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView
import myapp.urls

urlpatterns = [
 url(r'^admin/', admin.site.urls),
 url(r'^api/', include(myapp.urls)),
 url(r'^$', TemplateView.as_view(template_name="index.html")),
]

8.在项目的根目录,输入命令:

python manage.py makemigrations myapp
python manage.py migrate

查询数据库,看到book表已经自动创建了:
在这里插入图片描述

9.在项目的根目录,输入命令:

python manage.py runserver

启动服务,通过postman测试一下我们刚才写的两个接口:

add_book
在这里插入图片描述

show_books
在这里插入图片描述

四、 构建Vue.js前端项目
1、 先用npm安装vue-cli脚手架工具(vue-cli是官方脚手架工具,能迅速帮你搭建起vue项目的框架):

npm install -g vue-cli
安装好后,在project项目根目录下,新建一个前端工程目录:

vue-init webpack appfront //安装中把vue-router选上,我们须要它来做前端路由
进入appfront目录,运行命令:

npm install //安装vue所须要的node依赖
现在我们可以看到整个文件目录结构是这样的:
在这里插入图片描述

2、 在目录src下包含入口文件main.js,入口组件App.vue等。后缀为vue的文件是Vue.js框架定义的单文件组件,其中标签中的内容可以理解为是类html的页面结构内容,标签中的是js的方法、数据方面的内容,而则是css样式方面的内容:
在这里插入图片描述

3、 我们在src/component文件夹下新建一个名为Library.vue的组件,通过调用之前在Django上写好的api,实现添加书籍和展示书籍信息的功能。在样式组件上我们使用了饿了么团队推出的element-ui,这是一套专门匹配Vue.js框架的功能样式组件。由于组件的 编码涉及到了很多js、html、css的知识,并不是本文的重点,因此在此只贴出部分代码:
在这里插入图片描述

4、 在src/router目录的index.js中,我们把新建的Home组件,配置到vue-router路由中:
在这里插入图片描述

5、 如果发现列表抓取不到数据,可能是出现了跨域问题,打开浏览器console确认:

# Create your views here.
@require_http_methods(["GET"])
def add_book(request):
 response = {}
 try:
 book = Book(book_name=request.GET.get('book_name'))
 book.save()
 response['msg'] = 'success'
 response['error_num'] = 0
 except Exception,e:
 response['msg'] = str(e)
 response['error_num'] = 1

 return JsonResponse(response)

@require_http_methods(["GET"])
def show_books(request):
 response = {}
 try:
 books = Book.objects.filter()
 response['list'] = json.loads(serializers.serialize("json", books))
 response['msg'] = 'success'
 response['error_num'] = 0
 except Exception,e:
 response['msg'] = str(e)
 response['error_num'] = 1

 return JsonResponse(response)

这时候我们须要在Django层注入header,用Django的第三方包django-cors-headers来解决跨域问题:

pip install django-cors-headers
settings.py 修改:

MIDDLEWARE = [
‘django.middleware.security.SecurityMiddleware’,
‘django.contrib.sessions.middleware.SessionMiddleware’,
‘corsheaders.middleware.CorsMiddleware’,
‘django.middleware.common.CommonMiddleware’,
‘django.middleware.csrf.CsrfViewMiddleware’,
‘django.contrib.auth.middleware.AuthenticationMiddleware’,
‘django.contrib.messages.middleware.MessageMiddleware’,
‘django.middleware.clickjacking.XFrameOptionsMiddleware’,
]

CORS_ORIGIN_ALLOW_ALL = True
注意中间件的添加顺序
6、 在前端工程目录下,输入npm run dev启动node自带的服务器,浏览器会自动打开, 我们能看到页面:
在这里插入图片描述

尝试新增书籍,新增的书籍信息会实时反映到页面的列表中,这得益于Vue.js的数据双向绑定特性。

1.在前端工程目录下,输入npm run build,如果项目没有错误的话,就能够看到所有的组件、css、图片等都被webpack自动打包到dist目录下了:
在这里插入图片描述

五、 整合Django和Vue.js
目前我们已经分别完成了Django后端和Vue.js前端工程的创建和编写,但实际上它们是运行在各自的服务器上,和我们的要求是不一致的。因此我们须要把Django的TemplateView指向我们刚才生成的前端dist文件即可。

1、 找到project目录的urls.py,使用通用视图创建最简单的模板控制器,访问 『/』时直接返回 index.html:

urlpatterns = [
 url(r'^admin/', admin.site.urls),
 url(r'^api/', include(myapp.urls)),
 url(r'^$', TemplateView.as_view(template_name="index.html")),
]

2、 上一步使用了Django的模板系统,所以需要配置一下模板使Django知道从哪里找到index.html。在project目录的settings.py下:

TEMPLATES = [
 {
 'BACKEND': 'django.template.backends.django.DjangoTemplates',
 'DIRS': ['appfront/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',
 ],
 },
 },
]

3、 我们还需要配置一下静态文件的搜索路径。同样是project目录的settings.py下:

# Add for vuejs
STATICFILES_DIRS = [
 os.path.join(BASE_DIR, "appfront/dist/static"),
]

4、 配置完成,我们在project目录下输入命令python manage.py runserver,就能够看到我们的前端页面在浏览器上展现:
在这里插入图片描述
注意服务的端口已经是Django服务的8000而不是node服务的8080了

六、 部署
由于python的跨平台特性,因此理论上只要在服务器上安装好所有的依赖,直接把项目目录拷贝到服务器上即可运行。这里只提一点:如果为项目配置了nginx作为反向代理,那么要在nginx中配置所有的静态文件path都指向Django项目中配置的静态文件url,在settings.py中可配置url路径:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/

STATIC_URL = '/static/'

python课程设计——Django+vue信息管理系统 python课程设计——Django+vue2基于Python 语言、Django Web 框架和MySQL数据库,设计出在局域网内本地服务器上的米果信息管理系统网站。完成信息管理系统的前端设计和功能实现,采用前后端不分离的方式进行编写和设计,对其中的SQLite数据库和Django自带的前端网页模版进行基于现实需求的二次修改,实现以信息管理为主的功能。该系统功能上还不怎么完善、界面简洁、可操作性强,具有一定的实际应用价值。 阅读详情

相关推荐

Django+Vue环境搭建

一、Django环境 1、下载Django pip install django 2、创建Django项目 django-admin startproject server #server 为项目名 3、将最外层目录改为项目名称 4、启动服务 python manage.py runserver 0.0.0.0:8000 二、Vue环境 因为Vue环境可能会面临网络问题引发的timeout,所以以下介绍两种方式来安装。 方式一:线上安装 1、安装node.js js环...

WeirdoGiraffe的博客 1万+

【转】整合 Django + Vue.js 框架快速搭建web项目

转自:https://cloud.tencent.com/developer/article/1005607 可能遇到的问题及解决方法:https://segmentfault.com/q/1010000009075667/a-1020000011764624 一、 背景 在工作中我们经常须要构件一些基于web的项目,例如内部测试平台、运维系统等。本篇主要介绍如何使用后端Django + 前...

m0_37136911的博客 1676

Django + Vue.js 框架快速搭建 web 项目

项目说明: Django 为后端框架 Vue 为前端框架 一、安装环境 Django 2.0 Python 3.7 MySQL 5.6 nodejs v12.18.3 二、创建Django项目

迪迦·奥特曼__的博客 355

【django+vue】项目搭建、解决跨域访问

django 和 Vue.js 是一对非常强大的技术组合,可以用于构建现代化的 Web 应用程序。Django: Django 是一个使用 Python 编写的高级 Web 框架,它遵循了 MTV(模型-模板-视图)的设计模式。Django 提供了许多内置功能和工具,使开发者能够快速构建安全可靠的 Web 应用程序。ORM:Django 的 ORM(对象关系映射)层可以方便地与数据库交互,支持多种数据库后端。路由系统:Django 的路由系统可以帮助你管理 URL 映射和请求分发。

urge的博客 7369

使用Django和Vue.js框架实现快速搭建Web项目

Django是一个功能强大的Python Web框架,而Vue.js是一种灵活且易于使用的JavaScript框架。这段代码将导入Vue、App组件和Axios库,并将Axios库挂载到Vue原型上,以便我们可以在应用中使用它来发送HTTP请求。接下来,我们需要创建一个Django应用来处理我们的Web应用程序逻辑。首先,我们需要创建一个Django项目作为我们的后端。现在我们完成了Django后端和Vue.js前端的设置,可以启动项目进行测试了。来查看您的应用程序。的Vue.js应用,并进入应用目录。

MdlForward的博客 216

(一)企业微信 - 会话内容存档

企业微信获取会话记录。

专打丶小豆豆的博客 2890

整合Django+Vue.js框架快速搭建web项目(记录一下)

整合 Django + Vue.js 框架快速搭建web项目 一、 背景 在工作中我们经常须要构件一些基于web的项目,例如内部测试平台、运维系统等。本篇主要介绍如何使用后端Django + 前端Vue.js的技术栈快速地搭建起一套web项目的框架。 为什么使用Django和Vue.js? Django是Python体系下最成熟的web框架之一,由于Python语言的易用性和受众面广...

程序员野蛮成长 1153

【FPGA】定点数运算中的位宽优化与截取策略

本文深入探讨了FPGA定点数运算中的核心挑战——数据位宽优化与截取策略。针对定点数在加法、乘法等运算中位宽膨胀的问题,文章详细分析了位宽变化规律,并对比了直接截断、四舍五入和收敛舍入三大截取策略的优缺点及硬件实现方法。通过实战指南与避坑经验,旨在帮助开发者在保证计算精度的同时,高效利用FPGA资源,实现性能与面积的平衡。

weixin_29181861的博客 116

python前端框架django_整合 Django + Vue.js 框架快速搭建 web 项目

一、 背景在工作中我们经常须要构件一些基于web的项目,例如内部测试平台、运维系统等。本篇主要介绍如何使用后端Django + 前端Vue.js的技术栈快速地搭建起一套web项目的框架。为什么使用Django和Vue.js?Django是Python体系下最成熟的web框架之一,由于Python语言的易用性和受众面广,Django框架也因其能够快速开发网站应用的特性成为了中小型网站开发框架首选。且...

weixin_39949584的博客 1438

CODESYS V3.5 SP17编程环境全攻略:从安装到多语言编程实战

本文全面解析CODESYS V3.5 SP17编程环境,从安装配置到多语言编程实战技巧。详细介绍了运行时环境设置、六种IEC 61131-3语言的特性对比与混合编程策略,以及高级功能开发如自定义算法模块和实时通信配置。适合工业自动化工程师快速掌握这一强大工具。

weixin_30632089的博客 489

别再手动调参了!用MATLAB+改进PSO算法,5步搞定机械臂轨迹优化(附完整代码)

本文介绍如何利用MATLAB和改进PSO算法快速优化机械臂轨迹规划,仅需5步即可完成传统耗时的手动调参过程。通过混沌初始化、自适应权重等创新方法,改进PSO算法显著提升优化效率,实现全局最优解搜索,适用于工业自动化中的机械臂控制。文章包含完整MATLAB代码实现,帮助工程师轻松应用于实际生产场景。

weixin_29232121的博客 354

django 套vue 模板_整合 Django + Vue.js 框架快速搭建web项目(转载)

在工作中我们经常须要构件一些基于web的项目,例如内部测试平台、运维系统等。本篇主要介绍如何使用后端Django + 前端Vue.js的技术栈快速地搭建起一套web项目的框架。为什么使用Django和Vue.js?Django是Python体系下最成熟的web框架之一,由于Python语言的易用性和受众面广,Django框架也因其能够快速开发网站应用的特性成为了中小型网站开发框架首选。且Djang...

weixin_39602976的博客 1090

msf后渗透之获取登入password、远程控制、调用摄像头

在terminal输入load kili creds_all直接获取密码(不一定成功) 使用kiwi_cmd sekurlsa::logonpasswords获取密码

m0_61506558的博客 2964

Django+Vue项目构建

一、背景 主要介绍如何使用后端Django + 前端Vue 的技术栈快速地搭建起一套web项目的框架。 为什么使用Django和Vue? Django是Python体系下最成熟的web框架之一,由于Python语言的易用性和受众面广,Django框架也因其能够快速开发网站应用的特性成为了中小型网站开发框架首选。 Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还...

sinat_36141399的博客 1万+

基于STM32的太阳能充电宝设计_资料编号31

系统硬件包括主控 STM32F103C8T6、0.96 OLED 显示屏、蜂鸣器、电源自锁开关、温度传感器 DS18B20、继电器、5 V DC 升压模块 、TB4056、18650锂电池、9 V太阳能板、稳压降压 5 V三极管。电源供应:锂电池为系统供电,9 伏太阳能板经 5 伏降压稳压三极管降压为 5 伏后传送到 TP4056,TP4056 为锂电池供电,因锂电池电压 3.7 伏,通过 5 伏 DC 升压模块升压到 5 伏为整个系统提供 5 伏电压。

嵌入式阿齐Archie 1万+

【DRAM存储器六十五】DDR5介绍--训练相关之MPC、Read Training Pattern、Read Preamble Training Mode

简述DDR5 MPC操作和读训练时颗粒输出pattern的配置

highman110的博客 361

Hello-Vue-Django 项目使用教程

Hello-Vue-Django 项目使用教程 1. 项目介绍 Hello-Vue-Django 是一个开源项目,它整合了 Vue.js 和 Django 框架,旨在帮助开发者快速搭建前后端分离的 Web 应用。Vue.js 负责前端页面展示,而 Django 负责后端逻辑处理,两者通过 RESTful API 进行交互。 2. 项目快速启动 环境准备 Python 3.8+ Node.js 1...

gitblog_00059的博客 873

在 SAP SD(销售与分销)模块中,销售合同 / 订单的抬头(Header) 和行项目(Item) 核心数据表如下,按 “核心表 + 扩展表” 分类说明,同时区分销售合同(Contract,类型 W

SAP SD模块中销售合同/订单的核心数据表分为抬头和行项目两类。核心抬头表包括VBAK(基础数据)和VBUK(状态数据),核心行项目表包括VBAP(基础数据)和VBUP(状态数据)。扩展表包含VBAKE(抬头增强)、VBAPe(行项增强)、VBEP(计划行)、VBFA(凭证流)等。销售合同(WK/WC)和订单(OR)通过VBAK-AUART字段区分,核心表结构相同。查询时需注意单据类型筛选,并通过VBELN主键关联抬头和行项数据,KNUMV关联定价条件,VBFA表追踪凭证流。

金牌架构师 1090

手把手教你如何使用 Django + Vue.js 快速构建项目

主要内容1. 前言2. 环境准备3. 创建 Django 项目4. 创建 Vue.js 前端项目 1. 前言 本篇将基于Django + Vue.js,手把手教大家快速的实现一个前后端分离的Web项目。 2. 环境准备 Python 3.6.1 Mysql 5.7.23 Pycharm (专业版) Node 3. 创建 Django 项目 创建完成后,目录结构如下所示 使用 Navicat 工具创建数据库 DjangoVue 安装 mysqlclient 库 配置 settings.py 文件

hwijew的博客 9940

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Django Vue构建前后端分离web项目框架

本文推荐给在工作中需要构建基于web项目的工程师们。例如测试平台、运维平台等,都可参考本文介绍的后端Django + 前端Vue.js的技术栈快速地搭建起一套web项目的框架。 1. 优点 Django是Python体系下最成熟的web框架之一,Django框架因其能够快速开发网站应用的特性成为了中小型网站开发框架首选。且Django具备的数据分析(Pandas)、任务队列(Celery)、D...

xu7065的博客 3881

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[Python] 基于Web框架Django 前端框架Vue.js + elementUi 实现前后端分离项目环境搭建指南

本文整合Django和Vue.js 并引入elementUi 实现前后端分离项目环境 最终的成品是设计出一个页面可以添加和显示学生信息. 一.前言 Django作为Python 三大Web框架之一,因其集成了大量的组件(例如: Models Admin Form 等等)而大受欢迎,但是他本身自带的template模板实在是有点弱.于是考虑引入Vue.js ,可以更加快速高效的开发出美观实用的Web页面. 二.环境及软件准备 Python: 本文版本:Python 3.5 安装教程:h...

李威威wiwi的博客 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【亲测免费】 Django + Vue.js 实战派:打造现代Web应用的利器

Django + Vue.js 实战派:打造现代Web应用的利器 【下载地址】DjangoVue.js实战派项目资料 本项目资料包含了一系列精心编排的内容,旨在帮助你全面理解如何在实际项目中整合Django和Vue.js:- **快速入门指南**:涵盖Django和Vue.js的基本安装配置,以及它们如何集成。- **项...

gitblog_09738的博客 1038

推荐文章:探索Django与Vue.js的完美融合 —— django-with-vuejs项目解析

推荐文章:探索Django与Vue.js的完美融合 —— django-with-vuejs项目解析 项目介绍 在追求高效、清晰的DevOps时代,django-with-vuejs项目应运而生,旨在为开发者提供一套简单高效的前后端分离解决方案。该项目巧妙地将成熟的Python Web框架Django与热门前端框架Vue.js结合起来,简化了开发流程,优化了部署体验。它不仅仅是一个示例,更是一把...

gitblog_00366的博客 491

django vuejs整合web开发

转载自https://cloud.tencent.com/developer/article/1005607 一、 背景 本篇主要介绍如何使用后端Django + 前端Vue.js的技术栈快速地搭建起一套web项目的框架。 为什么使用Django和Vue.js? Django是Python体系下最成熟的web框架之一,由于Python语言的易用性和受众面广,Django框架也因其能够快速开...

Python_and_me的博客 2332

Vue.js与Django的完美结合:Vue-Django项目探索

在现代Web开发中,前端和后端框架的选择至关重要。如果你正在寻找一个将Vue.js的灵活性和Django的强大功能结合起来的解决方案,那么项目值得你一试。这是一个开源项目,旨在帮助开发者构建快速、可扩展且高效的Web应用程序。 ## 项目简介 Vue-Django项目是一个精心设计的模板,它提供了一个基础架构,让你可以在Django后端和Vue.js前端之间无缝地进行数据交互。通过利用这两种技

gitblog_00033的博客 667

结合Django和Vue.js构建现代Web应用

在现代Web开发中,结合后端框架和前端框架是非常常见的,其中Django作为一种流行的Python后端框架,而Vue.js则是一种灵活强大的前端框架。然后,你可以使用Gunicorn等工具来部署Django应用,并使用Nginx等工具来作为反向代理服务器来提供服务。应用中,可以创建视图和模型来定义数据和业务逻辑,并使用Django REST framework来构建API。通过结合Django和Vue.js,你可以构建出功能强大且现代化的Web应用,实现前后端分离和更好的开发体验。希望本文对你有所帮助!

Code掘金的博客 1200
上一篇: 接口测试项目实战
下一篇: github上有趣的内容
michaelbin2012
博客等级 码龄14年 21粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值