三、项目环境搭建

3.1.创建项目环境和安装包

创建django项目

mkvirtualenv DjangoProject

workon DjangoProject 

pip install -i https://pypi.douban.com/simple django==2.0.2

进front目录

npm init    #初始化一个package.json配置文件文件

在package.json文件中添加要安装的包

"devDependencies": {
"browser-sync": "^2.26.7",
"gulp": "^4.0.2",
"gulp-cache": "^1.1.2",
"gulp-concat": "^2.6.1",
"gulp-cssnano": "^2.1.3",
"gulp-imagemin": "^6.0.0",
"gulp-rename": "^1.4.0",
"gulp-sync": "^0.1.4",
"gulp-tinypng-nokey": "^1.1.0",
"gulp-uglify": "^3.0.2",
"gulp-watch": "^5.0.1"
}
{
"name": "xfz_front",
"version": "1.0.0",
"description": "xft front code",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "zhang_derek",
"license": "ISC",
"devDependencies": {
"browser-sync": "^2.26.7",
"gulp": "^4.0.2",
"gulp-cache": "^1.1.2",
"gulp-concat": "^2.6.1",
"gulp-cssnano": "^2.1.3",
"gulp-imagemin": "^6.0.0",
"gulp-rename": "^1.4.0",
"gulp-sync": "^0.1.4",
"gulp-tinypng-nokey": "^1.1.0",
"gulp-uglify": "^3.0.2",
"gulp-watch": "^5.0.1"
}
}

安装包,自动识别package.json文件中需要的包

npm install

项目目录结构

3.2.编写gulpfile.js文件

gulp.js

var gulp = require("gulp");
var cssnano = require("gulp-cssnano");
var rename = require("gulp-rename");
var uglify = require("gulp-uglify");
var concat = require("gulp-concat");
var tinypng_nokey = require('gulp-tinypng-nokey');
var bs = require("browser-sync").create(); //html任务
gulp.task("html",done =>{
gulp.src("./templates/**/*.html")
.pipe(bs.reload({
stream: true
}));
done();
}); // css任务
gulp.task("css",done =>{
gulp.src("./src/css/*.css")
.pipe(cssnano()) //压缩
.pipe(rename({"suffix":".min"})) //加后缀名
.pipe(gulp.dest('./dist/css/')) //压缩后存放的路径
.pipe(bs.reload({
stream: true
}));
done();
}); //js任务
gulp.task("js",done =>{
gulp.src("./src/js/*.js")
.pipe(uglify({
'toplevel':true,
'compress':{
'drop_console':true
}
}))
.pipe(rename({"suffix":".min"}))
.pipe(gulp.dest('./dist/js/'))
.pipe(bs.reload({
stream: true
}));
done();
}); //images任务
gulp.task("images",done =>{
gulp.src("./src/images/*.*")
.pipe(tinypng_nokey())
.pipe(gulp.dest('./dist/images/'))
.pipe(bs.reload({
stream: true
}));
done();
}); //监听
gulp.task('auto',function () {
gulp.watch("./templates/**/*.html",gulp.series('html'));
gulp.watch("./src/css/*.css",gulp.series('css'));
gulp.watch("./src/js/*.js",gulp.series('js'));
gulp.watch("./src/images/*.*",gulp.series('images'));
}); //初始化
gulp.task("bs",function () {
bs.init({
'server':{
'baseDir':'./',
}
})
}); //创建一个默认任务
gulp.task("default",gulp.parallel('bs','auto'));

3.3.css改为sass

安装sass包

npm install gulp-sass --save-dev

把index.css改成index.scss文件

gulpfile.js修改

var sass = require("gulp-sass");

// css任务
gulp.task("css",done =>{
gulp.src("./src/css/*.scss")
.pipe(sass().on("error",sass.logError))
.pipe(cssnano()) //压缩
.pipe(rename({"suffix":".min"})) //加后缀名
.pipe(gulp.dest('./dist/css/')) //压缩后存放的路径
.pipe(bs.reload({
stream: true
}));
done();
}); //监听
gulp.task('auto',function () {
gulp.watch("./templates/**/*.html",gulp.series('html'));
gulp.watch("./src/css/*.scss",gulp.series('css'));
gulp.watch("./src/js/*.js",gulp.series('js'));
gulp.watch("./src/images/*.*",gulp.series('images'));
});
var gulp = require("gulp");
var cssnano = require("gulp-cssnano");
var rename = require("gulp-rename");
var uglify = require("gulp-uglify");
var concat = require("gulp-concat");
var tinypng_nokey = require('gulp-tinypng-nokey');
var bs = require("browser-sync").create();
var sass = require("gulp-sass"); //html任务
gulp.task("html",done =>{
gulp.src("./templates/**/*.html")
.pipe(bs.reload({
stream: true
}));
done();
}); // css任务
gulp.task("css",done =>{
gulp.src("./src/css/*.scss")
.pipe(sass().on("error",sass.logError))
.pipe(cssnano()) //压缩
.pipe(rename({"suffix":".min"})) //加后缀名
.pipe(gulp.dest('./dist/css/')) //压缩后存放的路径
.pipe(bs.reload({
stream: true
}));
done();
}); //js任务
gulp.task("js",done =>{
gulp.src("./src/js/*.js")
.pipe(uglify({
'toplevel':true,
'compress':{
'drop_console':true
}
}))
.pipe(rename({"suffix":".min"}))
.pipe(gulp.dest('./dist/js/'))
.pipe(bs.reload({
stream: true
}));
done();
}); //images任务
gulp.task("images",done =>{
gulp.src("./src/images/*.*")
.pipe(tinypng_nokey())
.pipe(gulp.dest('./dist/images/'))
.pipe(bs.reload({
stream: true
}));
done();
}); //监听
gulp.task('auto',function () {
gulp.watch("./templates/**/*.html",gulp.series('html'));
gulp.watch("./src/css/*.scss",gulp.series('css'));
gulp.watch("./src/js/*.js",gulp.series('js'));
gulp.watch("./src/images/*.*",gulp.series('images'));
}); //初始化
gulp.task("bs",function () {
bs.init({
'server':{
'baseDir':'./',
}
})
}); //创建一个默认任务
gulp.task("default",gulp.parallel('bs','auto'));

Django打造大型企业官网(二)的更多相关文章

  1. 超细讲解Django打造大型企业官网

    本文为知了课堂黄勇老师讲的<超细讲解Django打造大型企业官网>的笔记. 第一章 Django预热 1.创建virtualenv虚拟环境 2.URL组成部分详解 3.Django介绍 4 ...

  2. Django打造大型企业官网

    第1章 Django预热 1-为什么需要虚拟环境 2-virtualenv创建虚拟环境 3-virtualenvwrapper使用 4-URL组成部分讲解 5-课程准备工作 6-Django介绍 第2 ...

  3. Django打造大型企业官网(一)

    一.nvm的安装 (1)下载:nvm1.16 (2)安装完成后添加环境变量 C:\Users\Administrator\AppData\Roaming\nvm (3)修改settings.txt,将 ...

  4. Django打造大型企业官网(八)

    4.16.侧边栏标题和广告位布局完成 templates/news/index.html <div class="sidebar-wrapper"> <div c ...

  5. Django打造大型企业官网(七)

    4.13.新闻列表tab栏布局完成 templates/news/index.html <div class="list-outer-group"> <ul cl ...

  6. Django打造大型企业官网(六)

    4.9.根据轮播图个数修改小圆点数量 src/js/index.js function Banner() { this.bannerWidth = 798; } Banner.prototype.in ...

  7. Django打造大型企业官网(五)

    4.6.切换轮播图的箭头样式以及显示和隐藏 templates/news/index.html <span class="arrow left-arrow">‹< ...

  8. Django打造大型企业官网(四)

    4.3.轮播图布局和样式 templates/news/index.html <div class="news-wrapper"> <div class=&quo ...

  9. Django打造大型企业官网(三)

    四.前端首页 4.1.导航条实现 (1)templates/new/index.html <!DOCTYPE html> <html lang="en"> ...

随机推荐

  1. Oracle中的执行计划

    使用autotrace sqlplus系统参数:SQL> set autotrace trace onSQL> select * from dual;DUM---XExecution Pl ...

  2. CAD参数绘制实心圆弧填充(网页版)

    js中实现代码说明: function DrawPathToHatch1() { //把路径的开始位置移动指定的点 //参数一为点的X坐标 ,参数二为点的Y坐标,参数三为该点处开始宽度,对Polyli ...

  3. CSS hover 改变另外一个元素状态

    Part.1 问题 我们写页面时也不少遇到这个问题,在没有使用任何预处理语言前提下,当hover 一个元素的时候怎么改变其它的元素? 这里我把它分为两种情况(除自身以外) hover时 1: 改变本身 ...

  4. JSP的九大对象和四大作用域

    1.JSP中九大内置对象为: request            请求对象          类型 javax.servlet.ServletRequest        作用域   Request ...

  5. hdfs的特性、命令、安全模式、基准测试

    1.第一点:如何理解hdfs分布式文件系统,每台机器出一块磁盘,凑成一个大的硬盘,大的硬盘的容量来自各个服务器的硬盘容量之和. 你出5毛,我出5毛,大家凑成1块. 2. HDFS 是 Hadoop D ...

  6. python compare with other language

    java http://dirtsimple.org/2004/12/python-is-not-java.htmlhttp://twistedmatrix.com/users/glyph/rant/ ...

  7. Java中的JVM的内存结构

    Java的虚拟机自身结构图: JVM内存结构主要包括两个子系统和两个组件.两个子系统分别是Classloader子系统和Executionengine(执行引擎)子系统:两个组件分别是Runtimed ...

  8. [Python3网络爬虫开发实战] 1.9.2-Scrapyd的安装

    Scrapyd是一个用于部署和运行Scrapy项目的工具,有了它,你可以将写好的Scrapy项目上传到云主机并通过API来控制它的运行. 既然是Scrapy项目部署,基本上都使用Linux主机,所以本 ...

  9. virtualBox+centos使用mount -t vboxsf挂载

    1.先确保virtualBox安装目录下有对应的文件VBoxGuestAdditions.iso 2.点击设备下的“安装增强功能”,之后再centos可视化界面一步一步点击即可 3.virtualBo ...

  10. Linux思维导图之网络管理

    查漏补缺,理解概念,及时总结,欢迎拍砖. IP地址和MAC地址: 1.设计形态不同.IP地址是基于网络拓扑设计出来的,可以人为改动:而MAC地址是制造商烧录好的不能改动,网卡决定了MAC地址,是固定的 ...