三、项目环境搭建

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

创建django项目

  1. mkvirtualenv DjangoProject
  2.  
  3. workon DjangoProject
  4.  
  5. pip install -i https://pypi.douban.com/simple django==2.0.2

进front目录

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

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

  1. "devDependencies": {
  2. "browser-sync": "^2.26.7",
  3. "gulp": "^4.0.2",
  4. "gulp-cache": "^1.1.2",
  5. "gulp-concat": "^2.6.1",
  6. "gulp-cssnano": "^2.1.3",
  7. "gulp-imagemin": "^6.0.0",
  8. "gulp-rename": "^1.4.0",
  9. "gulp-sync": "^0.1.4",
  10. "gulp-tinypng-nokey": "^1.1.0",
  11. "gulp-uglify": "^3.0.2",
  12. "gulp-watch": "^5.0.1"
  13. }
  1. {
  2. "name": "xfz_front",
  3. "version": "1.0.0",
  4. "description": "xft front code",
  5. "main": "index.js",
  6. "scripts": {
  7. "test": "echo \"Error: no test specified\" && exit 1"
  8. },
  9. "author": "zhang_derek",
  10. "license": "ISC",
  11. "devDependencies": {
  12. "browser-sync": "^2.26.7",
  13. "gulp": "^4.0.2",
  14. "gulp-cache": "^1.1.2",
  15. "gulp-concat": "^2.6.1",
  16. "gulp-cssnano": "^2.1.3",
  17. "gulp-imagemin": "^6.0.0",
  18. "gulp-rename": "^1.4.0",
  19. "gulp-sync": "^0.1.4",
  20. "gulp-tinypng-nokey": "^1.1.0",
  21. "gulp-uglify": "^3.0.2",
  22. "gulp-watch": "^5.0.1"
  23. }
  24. }

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

  1. npm install

项目目录结构

3.2.编写gulpfile.js文件

gulp.js

  1. var gulp = require("gulp");
  2. var cssnano = require("gulp-cssnano");
  3. var rename = require("gulp-rename");
  4. var uglify = require("gulp-uglify");
  5. var concat = require("gulp-concat");
  6. var tinypng_nokey = require('gulp-tinypng-nokey');
  7. var bs = require("browser-sync").create();
  8.  
  9. //html任务
  10. gulp.task("html",done =>{
  11. gulp.src("./templates/**/*.html")
  12. .pipe(bs.reload({
  13. stream: true
  14. }));
  15. done();
  16. });
  17.  
  18. // css任务
  19. gulp.task("css",done =>{
  20. gulp.src("./src/css/*.css")
  21. .pipe(cssnano()) //压缩
  22. .pipe(rename({"suffix":".min"})) //加后缀名
  23. .pipe(gulp.dest('./dist/css/')) //压缩后存放的路径
  24. .pipe(bs.reload({
  25. stream: true
  26. }));
  27. done();
  28. });
  29.  
  30. //js任务
  31. gulp.task("js",done =>{
  32. gulp.src("./src/js/*.js")
  33. .pipe(uglify({
  34. 'toplevel':true,
  35. 'compress':{
  36. 'drop_console':true
  37. }
  38. }))
  39. .pipe(rename({"suffix":".min"}))
  40. .pipe(gulp.dest('./dist/js/'))
  41. .pipe(bs.reload({
  42. stream: true
  43. }));
  44. done();
  45. });
  46.  
  47. //images任务
  48. gulp.task("images",done =>{
  49. gulp.src("./src/images/*.*")
  50. .pipe(tinypng_nokey())
  51. .pipe(gulp.dest('./dist/images/'))
  52. .pipe(bs.reload({
  53. stream: true
  54. }));
  55. done();
  56. });
  57.  
  58. //监听
  59. gulp.task('auto',function () {
  60. gulp.watch("./templates/**/*.html",gulp.series('html'));
  61. gulp.watch("./src/css/*.css",gulp.series('css'));
  62. gulp.watch("./src/js/*.js",gulp.series('js'));
  63. gulp.watch("./src/images/*.*",gulp.series('images'));
  64. });
  65.  
  66. //初始化
  67. gulp.task("bs",function () {
  68. bs.init({
  69. 'server':{
  70. 'baseDir':'./',
  71. }
  72. })
  73. });
  74.  
  75. //创建一个默认任务
  76. gulp.task("default",gulp.parallel('bs','auto'));

3.3.css改为sass

安装sass包

  1. npm install gulp-sass --save-dev

把index.css改成index.scss文件

gulpfile.js修改

  1. var sass = require("gulp-sass");
  2.  
  3. // css任务
  4. gulp.task("css",done =>{
  5. gulp.src("./src/css/*.scss")
  6. .pipe(sass().on("error",sass.logError))
  7. .pipe(cssnano()) //压缩
  8. .pipe(rename({"suffix":".min"})) //加后缀名
  9. .pipe(gulp.dest('./dist/css/')) //压缩后存放的路径
  10. .pipe(bs.reload({
  11. stream: true
  12. }));
  13. done();
  14. });
  15.  
  16. //监听
  17. gulp.task('auto',function () {
  18. gulp.watch("./templates/**/*.html",gulp.series('html'));
  19. gulp.watch("./src/css/*.scss",gulp.series('css'));
  20. gulp.watch("./src/js/*.js",gulp.series('js'));
  21. gulp.watch("./src/images/*.*",gulp.series('images'));
  22. });
  1. var gulp = require("gulp");
  2. var cssnano = require("gulp-cssnano");
  3. var rename = require("gulp-rename");
  4. var uglify = require("gulp-uglify");
  5. var concat = require("gulp-concat");
  6. var tinypng_nokey = require('gulp-tinypng-nokey');
  7. var bs = require("browser-sync").create();
  8. var sass = require("gulp-sass");
  9.  
  10. //html任务
  11. gulp.task("html",done =>{
  12. gulp.src("./templates/**/*.html")
  13. .pipe(bs.reload({
  14. stream: true
  15. }));
  16. done();
  17. });
  18.  
  19. // css任务
  20. gulp.task("css",done =>{
  21. gulp.src("./src/css/*.scss")
  22. .pipe(sass().on("error",sass.logError))
  23. .pipe(cssnano()) //压缩
  24. .pipe(rename({"suffix":".min"})) //加后缀名
  25. .pipe(gulp.dest('./dist/css/')) //压缩后存放的路径
  26. .pipe(bs.reload({
  27. stream: true
  28. }));
  29. done();
  30. });
  31.  
  32. //js任务
  33. gulp.task("js",done =>{
  34. gulp.src("./src/js/*.js")
  35. .pipe(uglify({
  36. 'toplevel':true,
  37. 'compress':{
  38. 'drop_console':true
  39. }
  40. }))
  41. .pipe(rename({"suffix":".min"}))
  42. .pipe(gulp.dest('./dist/js/'))
  43. .pipe(bs.reload({
  44. stream: true
  45. }));
  46. done();
  47. });
  48.  
  49. //images任务
  50. gulp.task("images",done =>{
  51. gulp.src("./src/images/*.*")
  52. .pipe(tinypng_nokey())
  53. .pipe(gulp.dest('./dist/images/'))
  54. .pipe(bs.reload({
  55. stream: true
  56. }));
  57. done();
  58. });
  59.  
  60. //监听
  61. gulp.task('auto',function () {
  62. gulp.watch("./templates/**/*.html",gulp.series('html'));
  63. gulp.watch("./src/css/*.scss",gulp.series('css'));
  64. gulp.watch("./src/js/*.js",gulp.series('js'));
  65. gulp.watch("./src/images/*.*",gulp.series('images'));
  66. });
  67.  
  68. //初始化
  69. gulp.task("bs",function () {
  70. bs.init({
  71. 'server':{
  72. 'baseDir':'./',
  73. }
  74. })
  75. });
  76.  
  77. //创建一个默认任务
  78. 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. 使用Let's Encrypt 生成免费的ssl证书的详细过程

    参考连接:https://github.com/diafygi/acme-tiny 中文:https://hacpai.com/article/1487899289204 目前我了解可以生成免费证书的 ...

  2. Asp.Net MVC中Controller、Action、View是如何激活调用的

    上篇我们介绍了MVC的路由,知道在注册路由的时候会创建一个MvcHandler将其和Url规则一起放入到了RouteCollection中,之后请求通过UrlRoutingModule,根据当前的UR ...

  3. Java Servlet 非英文乱码

    response.setHeader("Content-Type", "text/json; charset=UTF-8"); request.setChara ...

  4. XP禁用了U盘和移动硬盘方法

    会不会是你XP禁用了U盘和移动硬盘下面这些是任何禁用U盘的!你自己反着试下嘛!方法一,BIOS设置法(快刀斩乱麻法) 进入BIOS设置,选择“Integrated Peripherals”选项,展开后 ...

  5. vue按需加载组件-webpack require.ensure

    使用 vue-cli构建的项目,在 默认情况下 ,执行 npm run build 会将所有的js代码打包为一个整体, 打包位置是 dist/static/js/app.[contenthash].j ...

  6. 字符串匹配算法之BM算法

    BM算法,全称是Boyer-Moore算法,1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了一种新的字符串匹配算法. BM算法定义了两个规则: ...

  7. 动态规划----最长公共子序列(C++实现)

    最长公共子序列 题目描述:给定两个字符串s1 s2 … sn和t1 t2 … tm .求出这两个字符串的最长公共子序列的长度.字符串s1 s2 … sn的子序列指可以表示为 … { i1 < i ...

  8. CentOS7 export命令

    一.windows下的环境变量 在windows系统下,很多软件安装都需要配置环境变量,比如安装jdk,假如你没有配置环境变量,那么在非软件安装的目录下使用javac命令,系统将会报这不是系统内部命令 ...

  9. LBE_登录Demo

    目录 服务器 最小资产库创建 entity配置 实体的Python实现 创建第一个空间Space 让entity进入空间Space 客户端(unity) 生成客户端SDK 实现Client部分验证 验 ...

  10. Spider-scrapy日志处理

    Scrapy生成的调试信息非常有用,但是通常太啰嗦,你可以在Scrapy项目中的setting.py中设置日志显示等级: LOG_LEVEL = 'ERROR' 日志级别 Scrapy日志有五种等级, ...